Oracle LIKE ESCAPE子句

LIKE條件指定搜索值包含的匹配模式。

語法

char1是一個字符表達式,例如一個字符列,叫做搜索值。

char2是一個字符表達式,通常是一個字面量,叫做模型。

esc_char是一個字符表達式,通常是一個字面量,叫做轉義字符

如果不指定esc_char,則沒有默認轉義字符。如果char1,char2或esc_char任何一個爲空,則結果是未知的。然而如果指定了轉移字符,則必須是一個長度爲1字符串

所有的表達式可以是 CHAR, VARCHAR2, NCHAR, or NVARCHAR2數據類型中的任何一種。如果他們的數據類型不一樣,Oracle將他們所有的類型轉換成char1的數據類型。

模型可以包含特殊字符匹配模式:

下劃線(_):嚴格匹配一個字符。

百分號(%):可以匹配零個或多個字符。

如果搜索值中包含_或%,則需要使用escape子句。escape子句明確指定一個轉義字符。如果搜索值中包行了轉移字符本身,則使用兩個連續的轉義字符表示。例如@是轉義字符,則可以使用@@搜索@。

 

examples

 

1.創建t_char表

SQL> create table t_char (a varchar2(30));

2.向t_char表中插入數據

insert into t_char values ('abc');
insert into t_char values ('a%b');
insert into t_char values ('abc%');
insert into t_char values ('bc%');
insert into t_char values ('ab%%c');
insert into t_char values ('%abc');
insert into t_char values ('ab/c');
insert into t_char values ('bcd');
insert into t_char values ('ab');
insert into t_char values ('b_c');
insert into t_char values ('ad');

 

3.查詢包含d字符

SQL> select * from t_char where a like '%d%';
 
A
------------------------------
bcd
ad

 

4.查詢包含通配符%

SQL> select * from t_char where a like '%/%%' escape '/';
 
A
------------------------------
a%b
abc%
bc%
ab%%c
%abc

 

5.查詢包含兩個通配符%

SQL> select * from t_char where a like '%/%/%%' escape '/';
 
A
------------------------------
ab%%c

 

6.查詢以通配符%開始

SQL> select * from t_char where a like '/%%' escape '/';
 
A
------------------------------
%abc

 

7.查詢以通配符%結尾

SQL> select * from t_char where a like '%/%' escape '/';
 
A
------------------------------
abc%
bc%

 

8.查詢包含轉義字符

SQL> select * from t_char where a like '%//%' escape '/';
 
A
------------------------------
ab/c

 

轉移字符可以是長度爲1的任意字符。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章