甲骨文REGEXP_LIKE

时间:2020-06-12 14:11:12

标签: sql regex oracle select where-clause

有人可以在Oracle查询中帮助我,以搜索带有任何非字母字符或空格的文本 例如:- 印度- 印度, 印度 -印度 ,印度 印度

我为搜索INDIA编写的查询也检索了带有“ INDIAA”的行。

SELECT *
FROM TABLE_NAME
WHERE (REGEXP_LIKE (COLUMN_NAME,'INDIA[,_)("-]') 
     OR REGEXP_LIKE (COLUMN_NAME,'[,_)("-]INDIA')
     OR REGEXP_LIKE (COLUMN_NAME,'[,_)("-]INDIA[,_)("-]')
     OR  REGEXP_LIKE (COLUMN_NAME,'\sINDIA\s')
     OR  REGEXP_LIKE (COLUMN_NAME,'\sINDIA') 
     OR REGEXP_LIKE (COLUMN_NAME, 'INDIA\s') -- this line is causing problem
     OR REGEXP_LIKE (COLUMN_NAME, '^INDIA$'))

谢谢!

1 个答案:

答案 0 :(得分:2)

我建议:

regexp_like(column_name, '(^|\W)INDIA(\W|$)')

这会搜索'INDIA',并用非单词字符(\W)包围,或者在字符串的开头或结尾。