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
使用 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