You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PLSQL字符间指定间隔过滤:如何编写符合预期的SQL语句?

符合指定字符间隔过滤的PLSQL语句实现

原SQL使用的LIKE 'PO%V%%B%%%%'匹配逻辑过于宽松,无法精确控制各固定字符段之间的字符数量,导致返回不符合预期的结果。要实现PO后1个任意字符、V后2个任意字符、B后4个任意字符的精确匹配,建议使用正则表达式函数REGEXP_LIKE替代普通LIKE。

最终PLSQL语句

SELECT DISTINCT FE.parent_entity, FEATTR.attribute_value
FROM F_ENTITY FE
INNER JOIN F_ENTITYATTRIBUTE FEATTR 
    ON FEATTR.entity = FE.entity
WHERE REGEXP_LIKE(FEATTR.attribute_value, '^PO.{1}V.{2}B.{4}$');

正则表达式规则说明

正则^PO.{1}V.{2}B.{4}$的约束逻辑如下:

  • ^:匹配字符串起始位置,确保从开头就符合规则
  • PO:固定前缀,必须以这两个字符开头
  • .{1}:匹配恰好1个任意字符(对应预期中PO后的单个字符)
  • V:固定分隔字符,必须出现在上述1个字符之后
  • .{2}:匹配恰好2个任意字符(对应预期中V后的两个字符)
  • B:固定分隔字符,必须出现在上述2个字符之后
  • .{4}:匹配恰好4个任意字符(对应预期中B后的四个字符)
  • $:匹配字符串结束位置,确保没有多余的后续字符

该规则会严格过滤掉以下不符合预期的情况:

  • PO后包含2个及以上字符(如POMN...)
  • V后包含3个及以上字符(如V1234...)
  • B后包含5个及以上字符(如B12345678...)

内容的提问来源于stack exchange,提问作者eikaz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 15:25:27