OCP-1Z0-051 第76题 INSTR和SUBSTR函数

该博客介绍了如何使用Oracle SQL的INSTR和SUBSTR函数来查询CUSTOMERS表中包含'e'且倒数第二个字符为'a'的客户名。提供了四个查询选项分析,指出正确答案是A选项,解释了错误选项的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、原题
You need to display the first names of all customers from the CUSTOMERS table that contain the character 'e' and have the character 'a' in the second last position.
Which query would give the required output?
A. SELECT cust_first_name
       FROM customers
    WHERE INSTR(cust_first_name, 'e')<>0
          AND SUBSTR(cust_first_name, -2, 1)='a';

B. SELECT cust_first_name
       FROM customers
     WHERE INSTR(cust_first_name, 'e')<>''
           AND SUBSTR(cust_first_name, -2, 1)='a';
C. SELECT cust_first_name
        FROM customers
     WHERE INSTR(cust_first_name, 'e') IS NOT NULL
           AND SUBSTR(cust_first_name, 1,-2)='a';
D. SELECT cust_first_name
        FROM customers
     WHERE INSTR(cust_first_name, 'e')<>0
           AND SUBSTR(cust_first_name, LENGTH(cust_first_name),-2)='a';

答案:A

二、题目翻译
要从CUSTOMERS表中显示所有customers的first names,名字中要包含e,并且倒数第二个字符要包含a
下面哪个查询语句能给出所需的结果?

三、题目解析
A选项正确,INSTR如果不包含字符则返回0,不等于0,说明包含了e字符,SUBSTR可以从倒数第二个字符开始截取一个字符。
B选项不正确,INSTR的结果<>'',永远为false。
C选项不正确,INSTR的结果不可能为null。
D选项不正确,SUBSTR不是截取的倒数第二个字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值