1Z0-051 QUESTION 3 转译字符\在where语句中的使用

SQL LIKE与ESCAPE子句
本文探讨了如何使用SQL中的LIKE与ESCAPE子句来精确匹配包含特殊字符的字符串。通过具体示例展示了不同ESCAPE字符的使用方法及其可能产生的错误。
QUESTION 3
You need to extract details of those products in the SALES table where the PROD_ID column contains
the string '_D123'.
Which WHERE clause could be used in the SELECT statement to get the required output?
A. WHERE prod_id LIKE '%_D123%' ESCAPE '_'
B. WHERE prod_id LIKE '%\_D123%' ESCAPE '\'
C. WHERE prod_id LIKE '%_D123%' ESCAPE '%_'

D. WHERE prod_id LIKE '%\_D123%' ESCAPE '\_'

答案:B

解析:

SQL> create table sales (
  2  prod_id varchar2(10) not null,
  3  cust_id number not null,
  4  time_id date not null,
  5  channel_id number not null,
  6  promo_id number not null,
  7  quantity_sold number(10,2) not null);


表已创建。


SQL> insert into sales values('1_D123',2,sysdate,3,4,5);


已创建 1 行。

--A选项,报转义符之后字符缺失或非法
SQL> select * from sales
  2  where prod_id LIKE '%_D123%' ESCAPE '_'
  3  ;
where prod_id LIKE '%_D123%' ESCAPE '_'
                   *
第 2 行出现错误:
ORA-01424: 转义符之后字符缺失或非法



--B选项,可以正确的查出来
SQL> select * from sales
  2   WHERE prod_id LIKE '%\_D123%' ESCAPE '\'
  3  ;


PROD_ID       CUST_ID TIME_ID        CHANNEL_ID   PROMO_ID QUANTITY_SO
---------- ---------- -------------- ---------- ---------- -----------
1_D123              2 27-12月-13              3          4

--C选项报错转义符必须是长度为 1 的字符串
SQL> select * from sales
  2  WHERE prod_id LIKE '%_D123%' ESCAPE '%_';
WHERE prod_id LIKE '%_D123%' ESCAPE '%_'
                                    *
第 2 行出现错误:
ORA-01425: 转义符必须是长度为 1 的字符串



--D选项报错转义符必须是长度为 1 的字符串
SQL> select * from sales
  2  WHERE prod_id LIKE '%\_D123%' ESCAPE '\_';
WHERE prod_id LIKE '%\_D123%' ESCAPE '\_'
                                     *
第 2 行出现错误:
ORA-01425: 转义符必须是长度为 1 的字符串


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值