[英]oracle sql 'like' to find a specific substring
使用oracle sql,我要查找包含例如单词“ SAN”或其复数(如果有)的文本。 所以我的尝试是这样的:
select *
from table a
where upper(a.text_field) like '%SAN%'
但是查询的结果之一是任何包含“ san”的文本,例如:
artisan
partisan
但是理想的结果应该是:
abcde san fgeft
san abcde
abcde san(s) <- if there is a plural form
如何在oracle sql中的文本中找到确切的单词?
谢谢。
我更喜欢正则表达式,像这样
select *
from table a
where regexp_like(a.text_field,'\wsan\w', 'i')
\\w
表示单词边界, i
大小写无关
但是纯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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.