2014-06-25 30 views
1

我執行DB2上的查詢:如何匹配以DB2上的文本結尾的文本?

SELECT * FROM MYTABLE WHERE MYFIELD LIKE '%B' 

雖然我知道還有一些與數據庫中的「B」結尾的記錄,查詢返回任何結果。經過一番研究,似乎DB2並不認可LIKE表達式不以'%'結尾。所以下面的查詢將工作:

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

但自然不會如預期的,因爲它只會返回行,其中包含MyField的「B」,但並沒有與它結束。

如何繞過那個平臺,嗯,功能?如何在類似LIKE的表達式中匹配單詞末尾的文本?

+0

您是否試過'選擇*從MYTABLE在哪裏修剪(MYFIELD)就像'%B'' – Jens

回答

4

DB2可以匹配字符串末尾的模式。問題可能是其他角色。

你可以試試:

WHERE rtrim(MYFIELD) LIKE '%B' 

你也可以看場的長度和分隔字符串值,看看是否有其它字符:

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

如果「喜歡」操作你可以嘗試正則表達式(使用xQuery)