久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Oracle中查詢(xún)使用正則表達(dá)式函數(shù)REGEXP

 昵稱(chēng)9283147 2016-05-17

    Oracle中的Like操作符使用'_'和'%'作為通配符,,使用就像這樣:

Java代碼  收藏代碼
  1. SELECT name FROM test_like WHERE name like '_a%';   

    即匹配test_like表name列中第2個(gè)字母是a的所有行。但是注意,,Oracle匹配時(shí)區(qū)分大小寫(xiě)的,。也就是說(shuō)上面的查詢(xún)時(shí)無(wú)法查詢(xún)到name='SAas'這行的,。

 

    Oracle10g中提供的正則表達(dá)式功能可以很好的解決這個(gè)問(wèn)題,當(dāng)然這不是使用正則表達(dá)式函數(shù)的唯一優(yōu)點(diǎn),,實(shí)際上它比Like操作符強(qiáng)大的多。

    正則表達(dá)式的語(yǔ)法就不用多說(shuō)了,,現(xiàn)在大多數(shù)語(yǔ)言都支持正則表達(dá)式了。

    下面主要介紹下Oracle中正表達(dá)式函數(shù)REGEXP_LIKE的使用:

Sql代碼  收藏代碼
  1. REGEXP_LIKE(x, pattern [, match_option])  
  2.   
  3. 當(dāng)源字符串x匹配正則表達(dá)式pattern時(shí),,返回true??梢允褂胢atch_option修改默認(rèn)匹配選項(xiàng),,該參數(shù)可以被設(shè)置為:  
  4.   
  5. 'c', 說(shuō)明在進(jìn)行匹配時(shí)區(qū)分大小寫(xiě)(默認(rèn)選項(xiàng))  
  6. 'i',, 說(shuō)明在進(jìn)行匹配時(shí)不區(qū)分大小寫(xiě)  
  7. 'n'   允許使用可以匹配任意字符的操作符(通常是'.')  
  8. 'm',, 將x作為一個(gè)包含多行的字符串  

    舉個(gè)例子:

Sql代碼  收藏代碼
  1. SELECT * FROM test_reg WHERE REGEXP_LIKE(name'(a)\1''i');  

    上面的SQL語(yǔ)句匹配test_reg表中name列含有兩個(gè)連續(xù)字符'a'(不區(qū)分大小寫(xiě))的行,,如name='SaAs',。此外,這里我們還使用了正則表達(dá)式中的后引用語(yǔ)法——\n表示重復(fù)n次上次匹配的內(nèi)容,,此處(a)\1表示匹配兩個(gè)連續(xù)的字符'a',。

    需要注意的是,后引用必須使用雙括號(hào),,否則會(huì)出現(xiàn)如下結(jié)果:

Sql代碼  收藏代碼
  1. SELECT * FROM test_reg WHERE REGEXP_LIKE(name'a\1''i')  
  2.    
  3. ORA-12727: 正則表達(dá)式中的后向引用無(wú)效  

 

    最后一點(diǎn),,不要混淆LIKE操作符的通配符和正則表達(dá)式的語(yǔ)法,,也就是說(shuō)不要再正則表達(dá)式中使用LIKE操作符中的通配符,如果這樣做會(huì)得到未知的結(jié)果,,因?yàn)?_'和'%'會(huì)被正則表達(dá)式當(dāng)做普通字符進(jìn)行匹配,。

    比如下面這條SQL想要得到name='SaAs'這條記錄,但實(shí)際的查詢(xún)結(jié)果為空,。

Sql代碼  收藏代碼
  1. SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name'^_(a)\1''i');  
  2.    
  3. NAME  
  4. ----------  

   實(shí)際應(yīng)該使用:

Sql代碼  收藏代碼
  1. SQL> SELECT * FROM test_reg WHERE REGEXP_LIKE(name'^.(a)\1''i');  
  2.    
  3. NAME  
  4. ----------  
  5. SaAs  
 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多