例如,我在查询的With子句中定义了以下示例:
'.+d\$'
作为sec_level_pattern
,来自双重
现在我可以在选择查询中看到以下情况:
not regexp_like(name,sec_level_pattern)
name
是我的rd_tst
表中的列。
条件regexp_like
在这里检查什么?我几乎没有发现关于regexp_like
的问题,但不了解在这里我的用例中将实际检查什么。
例如,我在查询的With子句中定义了以下示例:
'.+d\$'
作为sec_level_pattern
,来自双重
现在我可以在选择查询中看到以下情况:
not regexp_like(name,sec_level_pattern)
name
是我的rd_tst
表中的列。
条件regexp_like
在这里检查什么?我几乎没有发现关于regexp_like
的问题,但不了解在这里我的用例中将实际检查什么。
我需要为
sec_level_pattern
更改什么才能返回所有名称?
您的样本数据似乎具有以下格式:
.GTX
;然后您想要一个与以下内容匹配的正则表达式:
SELECT *
FROM table_name
WHERE REGEXP_LIKE( names,'^[A-Z]{2}[A-Z0-9]{10}\.GTX$' );
其中的示例数据:
CREATE TABLE table_name ( Names ) AS
SELECT 'AT0000730007.GTX' FROM DUAL UNION ALL
SELECT 'CH0012032048.GTX' FROM DUAL UNION ALL
SELECT 'DE0005550602.GTX' FROM DUAL UNION ALL
SELECT 'DE0007236101.GTX' FROM DUAL UNION ALL
SELECT 'DE000A1EWWW0.GTX' FROM DUAL UNION ALL
SELECT 'DE000ENAG999.GTX' FROM DUAL UNION ALL
SELECT 'DE000TUAG000.GTX' FROM DUAL UNION ALL
SELECT 'FI0009000681.GTX' FROM DUAL UNION ALL
SELECT 'FR0000120172.GTX' FROM DUAL UNION ALL
SELECT 'FR0000125007.GTX' FROM DUAL UNION ALL
SELECT 'IT0003132476.GTX' FROM DUAL UNION ALL
SELECT 'NL0000235190.GTX' FROM DUAL UNION ALL
SELECT 'NL0011794037.GTX' FROM DUAL UNION ALL
SELECT 'SE0000148884.GTX' FROM DUAL;
返回所有名称:
| NAMES | | :--------------- | | AT0000730007.GTX | | CH0012032048.GTX | | DE0005550602.GTX | | DE0007236101.GTX | | DE000A1EWWW0.GTX | | DE000ENAG999.GTX | | DE000TUAG000.GTX | | FI0009000681.GTX | | FR0000120172.GTX | | FR0000125007.GTX | | IT0003132476.GTX | | NL0000235190.GTX | | NL0011794037.GTX | | SE0000148884.GTX |
db 提琴here
,此模式:
'.+d\$'
确实是字符串。它正在寻找至少一个字符(通常是非换行符),后跟小写字母'd'
,然后是文字'$'
。因此,这符合:
Xd$
123d$abc
它等效于:like '%_d$%'
。
很可能您打算使用更合理的'\d+$'
。这将匹配任何以数字结尾的字符串。