一、
-
艹,这个需求就很操蛋。
-
实现
SELECT *
FROM T1
WHERE REGEXP_LIKE(field, '.*value.*', 'c');
在 Oracle 数据库中使用 REGEXP_LIKE 函数时,'c' 参数用于指定比较应该是大小写敏感的。默认情况下,正则表达式的匹配在 Oracle 中是大小写敏感的,但这个参数可以用来明确这一行为,尤其是在数据库的全局设置可能影响大小写敏感性的环境中。
REGEXP_LIKE 函数的一般语法是:
其中 match_parameter 可以包括以下几种:
'c':表示大小写敏感(Case sensitive)。
'i':表示大小写不敏感(Case insensitive)。
'n':允许模式匹配符号 "." 匹配换行符。
'm':将源字符串视为多行,其中 ^ 和 $ 分别匹配每行的开始和结束,而不是整个字符串的开始和结束。
如果没有特别指定,REGEXP_LIKE 默认是大小写敏感的,即默认包含 'c' 的行为。如果你的环境中正则表达式似乎不遵循这一默认行为,可能是由于数据库的 NLS_SORT 或 NLS_COMP 参数设置导致的。在这种情况下,明确使用 'c' 参数可以帮助确保查询的行为符合预期。
二、不区分大小写查询
SELECT *
FROM T1
WHERE LOWER(field) LIKE LOWER('%value%') ;
标签:LIKE,默认,敏感,大小写,Oracle,REGEXP
From: https://www.cnblogs.com/kakarotto-chen/p/18158018