ORACLE正則匹配查詢LIKE查詢多個值檢索數(shù)據(jù)庫對象
字符串’^198[0-9]$’可以匹配‘1980-1989’,如果希望統(tǒng)計出公司那些員工是80年~89年入職的,就可以使用如下的SQL語句:
select * from emp e where regexp_like(to_char( e.hiredate,"yyyy"),"^198[0-9]$");
正則表達(dá)式中常用到的元數(shù)據(jù)(metacharacter)如下:
^ 匹配字符串的開頭位置。
$ 匹配支付傳的結(jié)尾位置。
* 匹配該字符前面的一個字符0次,1次或者多次出現(xiàn)。例如52*oracle 可以匹配 5oracle,52oracle,522oracle,5222oracle等等。
+ 匹配該字符前面的一個字符1次或者多次出現(xiàn)。例如52+oracle 可以匹配 52oracle,522oracle,5222oracle等等
? 匹配該字符前面的一個字符0次或1次或者多次出現(xiàn)。例如52?oracle 只能匹配5oracle,52oracle等等
{n} 匹配一個字符串n次,n為正整數(shù)。例如:hel{2}o 所匹配的是hello
{n,m} 匹配一個字符串至少n次,至多m次。其中n和m都是整數(shù)。
. 匹配除了null之外的任何單個字符串
(pattern) 這個是用來匹配指定模式的一個子表達(dá)式
x|y 匹配x或者y,其中x和y是一個或者多個字符
[abc] 匹配括號中的任意一個字符。例如:[ab]bc可以匹配abc和bbc
[a-z] 匹配指定范圍內(nèi)的任意字符串。例如[A-G]hi可以匹配Ahi至Ghi
[::]指定一個字符類,可以匹配該類中的任意字符 這里的字符類包括:
[:alphanum:] 可以匹配字符0-9、A-Z、a-z
[:alpha:]可以匹配字符A-Z、a-z
[:blank:]可以匹配空格或者tab鍵
[:digit:]可以匹配數(shù)字 0-9
[:gragh:]可以匹配非空字符
[:punct:]可以匹配. , ” ‘等標(biāo)點符號。
[:upper:]可以匹配字符A-Z
[:lower:]可以匹配字符a-z
關(guān)于orace中的正則表達(dá)式只能通過oracle特意為正則表達(dá)式設(shè)計的4個函數(shù)來使用。這4個函數(shù)分別是:
regexp_like,regexp_instr,regexp_replace,regexp_substr。
查詢oracle中,哪些對象的sql包括了檢索的文本(多個值 使用“|”隔開, 關(guān)于user_source對象,移步到無限套娃鏈接 ORACLE常用數(shù)據(jù)字典)
未去重(查詢出詳細(xì)信息):
去重查詢出涉及到的對象名稱:
到此這篇關(guān)于ORACLE正則匹配查詢,LIKE查詢多個值檢索數(shù)據(jù)庫對象。的文章就介紹到這了,更多相關(guān)oracle正則匹配查詢內(nèi)容請搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
