通配符
通配符描述示例
%:匹配包含零個或更多字符的任意字符串。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;
