虽然会了,但是我感觉还是做个笔记吧,,以后可以来看看,复习复习Oracle中escape关键字的用法_oracle--sql

今天看书遇到了这个语句:

select name
from promotions
where name like '%\%%' escape '\'
/

我看了之后有些不解,,,,,然后在网上查了查资料。。。。

先给大家解释一下吧:

其中escape关键字是指定转义字符的,上面的转义字符就是 \  

而这个转义字符是转谁的意呢?????

当然是转特殊字符的意思啦,比如:%,_,&

因为想要查找name中含有%的信息,但是%本来就是一个特殊字符-->用来匹配任意个字符的,所以这里需要转义字符转移一下啦,就没有匹配任意个字符的意思了;

看看下面的几个例子,escape分别制定了其他字符为转义字符:

1、设置  '-'为转义字符

select name
 from promotions
where name like '%-%%' escape '-'
SQL>
NAME
------------------------------
10% off Z Files
20% off Pop 3
30% off Modern Science
20% off Tank War
10% off Chemistry
20% off Creative Yell
15% off My Front Line
7 rows selected.

2、设置  '(' 为转义字符:


select name
from promotions
where name like '%(_%' escape '('
/
SQL> /
no rows selected

读者可以自己把其他的符号设置为转义字符,我就不在这里给大家设置了

注意:我上面给大家演示的表还有结构如下:

SQL> desc promotions;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 PROMOTION_ID                              NOT NULL NUMBER(38)
 NAME                                      NOT NULL VARCHAR2(30)
 DURATION                                           INTERVAL DAY(3) TO SECOND(4)
SQL> select name
  2  from promotions;
NAME
------------------------------
10% off Z Files
20% off Pop 3
30% off Modern Science
20% off Tank War
10% off Chemistry
20% off Creative Yell
15% off My Front Line
7 rows selected.
SQL>

大家可以自己试试,,,嘿嘿,去吃饭了