如何匹配DB2上的文本结尾?

时间:2014-06-25 11:36:24

标签: sql db2 sql-like

我在DB2上执行了查询:

SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B' 

虽然我知道数据库中有以“B”结尾的记录,但查询没有返回任何结果。经过一些研究,似乎DB2没有识别出不以'%'结尾的LIKE表达式。因此,以下查询将起作用:

SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B%' 

但自然不如预期,因为它只会返回MYFIELD包含'B'的行,但不会以它结尾。

如何解决这个问题,嗯,功能?如何在类似LIKE的表达式中匹配单词末尾的文本?

2 个答案:

答案 0 :(得分:5)

DB2可以匹配字符串末尾的模式。问题可能是还有其他角色。

您可以尝试:

WHERE rtrim(MYFIELD) LIKE '%B'

您还可以查看字段的长度并分隔字符串值以查看是否还有其他字符:

select length(MyField), '|' || MyField || '|'
from mytable
where MyField like '%B%';

答案 1 :(得分:0)

如果'like'运算符不适合你,你可以尝试使用正则表达式(使用xQuery)