Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle sql';比如';查找特定的子字符串_Sql_Oracle_Sql Like - Fatal编程技术网

oracle sql';比如';查找特定的子字符串

oracle sql';比如';查找特定的子字符串,sql,oracle,sql-like,Sql,Oracle,Sql Like,使用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 abc

使用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
abcde san fgeft 圣阿卜德
abcde san(s)我更喜欢像这样的regexp

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