oracle 通配符及regexp_count函數說明


通配符

通配符描述示例
      %:匹配包含零個或更多字符的任意字符串。WHERE title LIKE '%computer%' 將查找處於書名任意位置的包含單詞 computer 的所有書名。
      _(下划線):匹配任何單個字符。WHERE au_fname LIKE '_ean' 將查找以 ean 結尾的所有 4 個字母的名字(Dean、Sean 等)。
      [ ]:指定范圍 ,([a-f]) 或集合 ([abcdef]) 中的任何單個字符。WHERE au_lname LIKE '[C-P]arsen' 將查找以arsen 結尾且以介於 C 與 P 之間的任何單個字符開始的作者姓氏,例如,Carsen、Larsen、Karsen 等。
      [^]:不屬於指定范圍, ([a-f]) 或集合 ([abcdef]) 的任何單個字符。WHERE au_lname LIKE 'de[^l]%' 將查找以 de 開始且其后的字母不為 l 的所有作者的姓氏。

 

轉義符

1、單引號[']轉換成兩個單引號['']就可以了

例:SELECT * FROM TBL WHERE COL = 'ABC''DEF'; 

2、Escape 轉義字符

[%]、[_]

SELECT * FROM TBL WHERE COL LIKE 'ABC/%/_/%/_%' ESCAPE '/'; 

 

 

 3、  REGEXP_COUNT函數說明

Oracle的11g引入此函數

  REGEXP_COUNT ( source_char, pattern [, position [, match_param]])

REGEXP_COUNT 返回pattern 在source_char 串中出現的次數。如果未找到匹配,則函數返回0。position 變量告訴Oracle 在源串的什么位置開始搜索。在開始位置之后每出現一次模式,都會使計數結果增加1。

match_param 變量支持下面幾個值:

‘i’ 用於不區分大小寫的匹配
‘c’ 用於區分大小寫的匹配
‘n’ 允許句點(.)作為通配符去匹配換行符。如果省略該參數,則句點將不匹配換行符
‘m’ 將源串視為多行。即Oracle 將^和$分別看作源串中任意位置任何行的開始和結束,而不是僅僅看作整個源串的開始或結束。如果省略該參數,則Oracle將源串看作一行。
‘x’ 忽略空格字符。默認情況下,空格字符與自身相匹配。

select REGEXP_COUNT('GEORGE','GE',1,'i')  
   from DUAL;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM