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

Dan*_*lor 2 sql db2 sql-like

我已经在DB2上执行了查询:

SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B' 
Run Code Online (Sandbox Code Playgroud)

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

SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B%' 
Run Code Online (Sandbox Code Playgroud)

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

如何绕过那个噱头,嗯,功能?如何在类似LIKE的表达式中匹配单词末尾的文本?

Gor*_*off 6

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

你可以试试:

WHERE rtrim(MYFIELD) LIKE '%B'
Run Code Online (Sandbox Code Playgroud)

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

select length(MyField), '|' || MyField || '|'
from mytable
where MyField like '%B%';
Run Code Online (Sandbox Code Playgroud)