繁体   English   中英

oracle sql'like'查找特定的子字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM