我在DB2上执行了查询:
SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B'
虽然我知道数据库中有以“B”结尾的记录,但查询没有返回任何结果。经过一些研究,似乎DB2没有识别出不以'%'结尾的LIKE表达式。因此,以下查询将起作用:
SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B%'
但自然不如预期,因为它只会返回MYFIELD包含'B'的行,但不会以它结尾。
如何解决这个问题,嗯,功能?如何在类似LIKE的表达式中匹配单词末尾的文本?
答案 0 :(得分:5)
DB2可以匹配字符串末尾的模式。问题可能是还有其他角色。
您可以尝试:
WHERE rtrim(MYFIELD) LIKE '%B'
您还可以查看字段的长度并分隔字符串值以查看是否还有其他字符:
select length(MyField), '|' || MyField || '|'
from mytable
where MyField like '%B%';
答案 1 :(得分:0)
如果'like'运算符不适合你,你可以尝试使用正则表达式(使用xQuery)