OCP-1Z0-051 第62题 where通配符

本文通过比较在Oracle数据库中使用BETWEEN AND和LIKE通配符查询的区别,讨论了在筛选以特定字符开头的数据时的正确方法。在给定的示例中,使用BETWEEN AND无法正确地获取以'A', 'B'或'C'开头的客户信息,而LIKE通配符则能提供正确的结果。" 107730217,9664483,C++实现复数实部与虚部处理,"['C++', '编程']

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

一、原题
View the Exhibit and examine the structure of the CUSTOMERS table.
You want to generate a report showing the last names and credit limits of all customers whose last names start with A, B, or C, and credit limit is below 10, 000.
Evaluate the following two queries:
SQL> SELECT cust_last_name, cust_credit_limit
             FROM customers
          WHERE (UPPER(cust_last_name) LIKE 'A%' OR UPPER(cust_last_name) LIKE 'B%' OR UPPER(cust_last_name) LIKE 'C%')
               AND cust_credit_limit < 10000;
SQL>SELECT cust_last_name, cust_credit_limit FROM customers
         WHERE UPPER(cust_last_name) BETWEEN 'A' AND 'C'
              AND cust_credit_limit < 10000;
Which statement is true regarding the execution of the above queries?

A. Only the first query gives the correct result.
B. Only the second query gives the correct result
C. Both execute successfully and give the same result.
D. Both execute successfully but do not give the required result.

答案:A
二、题目翻译
查看CUSTOMERS表的结构
现在要生成一个报表,显示所有customers的last names和credit limits,客户的last names以A, B, 或C开头,并且credit limit小于10,000
下面的两个查询:
关于上面的查询哪个描述是正确的?
A.只有第一个查询给出正确结果。
B.只有第二个查询给出正确结果。
C.两个都能执行成功,并给出正确结果。
D.两个都能执行成功,但不能给出所需结果。
三、题目解析
因为第二条查询语句里的BETWEEN 'A' AND 'C',只能查出以A和B开头的,不能查出以C开头的。

具体测试如下,只出现A和B开头的,并没有出现C开头的:


SQL> select empno,ename from emp order by ename;

     EMPNO ENAME
---------- ----------
      7876 ADAMS
      7499 ALLEN
      7698 BLAKE
      7782 CLARK
      7902 FORD
      7900 JAMES
      7566 JONES
      7839 KING
      7654 MARTIN
      7934 MILLER
      7788 SCOTT
      7369 SMITH
      7844 TURNER
      7521 WARD


已选择14行。


SQL> select empno,ename from emp
  2  where ename between 'A' and 'C';

     EMPNO ENAME
---------- ----------
      7876 ADAMS
      7499 ALLEN
      7698 BLAKE


评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值