方法:1、利用“LOWER(字段值)”將字段轉(zhuǎn)為小寫,或者利用“UPPER(字段值)”將字段轉(zhuǎn)為大寫;2、利用“REGEXP_LIKE(字符串,正則表達(dá)式,’i’)”,當(dāng)參數(shù)設(shè)置為“i”時(shí),說明進(jìn)行匹配不區(qū)分大小寫。
本教程操作環(huán)境:Windows10系統(tǒng)、oracle 11g版、Dell G3電腦。
oracle查詢怎么不區(qū)分大小寫
1、方式一
轉(zhuǎn)為小寫? LOWER(‘ABC’) 結(jié)果 abc
轉(zhuǎn)為大寫? UPPER(‘aBc’) 結(jié)果 ABC
select?*?from?table?lower(FAMILY_NAME)?like?lower(#{familyName})?--將字段全轉(zhuǎn)成小寫 select?*?from?table?upper(FAMILY_NAME)?like?upper(#{familyName})?--將字段全轉(zhuǎn)成大寫
2、方式二
REGEXP_LIKE(x,?pattern?[,?match_option])
當(dāng)源字符串x匹配正則表達(dá)式pattern時(shí),返回true。
可以使用match_option修改默認(rèn)匹配選項(xiàng),該參數(shù)可以被設(shè)置為:? ?
-
– ‘c’, 說明在進(jìn)行匹配時(shí)區(qū)分大小寫(默認(rèn)選項(xiàng))? ?
-
– ‘i’, 說明在進(jìn)行匹配時(shí)不區(qū)分大小寫? ?
-
– ‘n’, 允許使用可以匹配任意字符的操作符(通常是’.’)? ?
-
– ‘m’, 將x作為一個(gè)包含多行的字符串??
SELECT?*?FROM?test_reg?WHERE?REGEXP_LIKE(name,?'(a)1',?'i');
上面的sql語句匹配test_reg表中name列含有兩個(gè)連續(xù)字符’a’(不區(qū)分大小寫)的行,如name=’SaAs’。
此外,這里我們還使用了正則表達(dá)式中的后引用語法——n表示重復(fù)n次上次匹配的內(nèi)容,
此處(a)1表示匹配兩個(gè)連續(xù)的字符’a’。
Oracle 默認(rèn)是區(qū)分大小寫,如果不要區(qū)分,就要額外的設(shè)置。
這個(gè)是在當(dāng)前會話上,也就是說在每次發(fā)起查詢的時(shí)候都需要執(zhí)行這個(gè)才能起作用的。
推薦教程:《Oracle視頻教程》