2015-05-02 31 views
1

使用oracle sql,我想找到一個包含例如確切的單詞'SAN'或其複數(如果有的話)的文本。 所以我嘗試這就是:oracle sql'like'找到一個特定的子字符串

select * 
from table a 
where upper(a.text_field) like '%SAN%' 

但包含任何文本從查詢結果中的一個「聖」,如:

artisan 
partisan 

但所期望的結果應該是:

abcde san fgeft 
san abcde 
abcde san(s) <- if there is a plural form 

如何在oracle sql中的文本中找到確切的單詞?

謝謝。

回答

1

我喜歡的正則表達式,像這樣

select * 
from table a 
where regexp_like(a.text_field,'\wsan\w', 'i') 

\w - 指字邊界,i - 案例unsensetive

但純SQL可以與所有的字邊界排列,例如:

select * 
from table a 
where upper(a.text_field) like '% SAN %' or upper(a.text_field) like 'SAN %' or upper(a.text_field) like '% SAN' --- and so on 
相關問題