Oracle正则表达式 - 匹配一个确切的单词

时间:2017-04-21 07:43:56

标签: sql regex oracle

我需要在表中搜索名为DESCRIPTION的列,该列与确切的单词ICE,Ice或ice相匹配。在关键字之前或之后可能还有其他单词,但它不应该像Price,Mice,Nice。我想像普通LIKE一样接受Oracle正则表达式的帮助,我得到像Price,Mice等字符串,如上所述。我试过像(DESCRIPTION LIKE '%ICE%' or DESCRIPTION LIKE '%Ice%')这样的东西。请帮忙。

非常感谢。

2 个答案:

答案 0 :(得分:1)

尝试正则表达式,如果是Oracle regexp_like

https://docs.oracle.com/cd/B12037_01/server.101/b10759/conditions018.htm

select *
  from MyTable
 where regexp_like(DESCRIPTION, '^(.*\s+)?ice(\s+.*)?$', 'i') 

答案 1 :(得分:1)

SELECT *
FROM   your_table
WHERE  UPPER( description ) = 'ICE'
OR     UPPER( description ) LIKE 'ICE %'
OR     UPPER( description ) LIKE '% ICE'
OR     UPPER( description ) LIKE '% ICE %';

或者

SELECT *
FROM   your_table
WHERE  REGEXP_LIKE( description, '(^|[^a-z])ice($|[^a-z])', 'i' )