Sql 在DB2中使用类似REGEXP_时出错
我正在尝试一种我认为非常直截了当的SQL语句。我试图使用正则表达式只抓取名称仅由3个数字组成的记录 然而,我得到了一个错误,我不知道为什么。因为它是DB2,所以几乎没有那么多的例子可供借鉴(比如说Postgres),所以我被卡住了 有人知道怎么了吗Sql 在DB2中使用类似REGEXP_时出错,sql,regex,db2,db2-luw,Sql,Regex,Db2,Db2 Luw,我正在尝试一种我认为非常直截了当的SQL语句。我试图使用正则表达式只抓取名称仅由3个数字组成的记录 然而,我得到了一个错误,我不知道为什么。因为它是DB2,所以几乎没有那么多的例子可供借鉴(比如说Postgres),所以我被卡住了 有人知道怎么了吗 SELECT ia.ID ,ia.DESCRIPTION FROM INVENTORY.ACTIVITIES ia WHERE REGEXP_LIKE(ia.NAME, '[0-9]{3}') 错误: [IBM][CLI D
SELECT
ia.ID
,ia.DESCRIPTION
FROM INVENTORY.ACTIVITIES ia
WHERE
REGEXP_LIKE(ia.NAME, '[0-9]{3}')
错误:
[IBM][CLI Driver][DB2/LINUXX8664]SQL0104N在“(ia.NAME,[0-9]{3}”)之后找到了一个意外的标记“)。预期的令牌可能包括:“”。SQLSTATE=42601。
您的代码应该编译。但它不能满足你的需要。字符串的开头和结尾需要标记:
SELECT ia.ID, ia.DESCRIPTION
FROM INVENTORY.ACTIVITIES ia
WHERE REGEXP_LIKE(ia.NAME, '^[0-9]{3}$')
我对您的错误的最佳猜测是一个隐藏字符。根据db2i中没有类似的
regexp\u
,这似乎是在最新版本(11.1)中添加的:您是否尝试过\d{3}
?刚刚尝试过。。。同样的错误您的Db2版本是什么?这很重要。