AND,OR运算符优先级在SQL中

时间:2014-02-27 19:17:55

标签: mysql sql select dql

我正在读一本书,在10分钟内自学SQL(尽管在10分钟内无法阅读),并且其中一个练习的答案让我感到困惑,我不确定提供的答案是否正确。 (第8小时练习项目#2,答案在附录中)

编写一个返回客户ID和客户名称的SELECT语句 (alpha order)适用于居住在印第安纳州,俄亥俄州,密歇根州和伊利诺伊州的客户, 名称以字母A或B开头。

SELECT CUST_ID, CUST_NAME, CUST_STATE
FROM CUSTOMER_TBL
WHERE CUST_STATE IN ('IN', 'OH', 'MI', 'IL')
AND CUST_NAME LIKE 'A%'
OR CUST_NAME LIKE 'B%'
ORDER BY CUST_NAME;

此查询是否会返回客户ID和客户名称,这些客户名称以字母B开头,但不属于上述状态?

不应该是

 SELECT CUST_ID, CUST_NAME, CUST_STATE
 FROM CUSTOMER_TBL
 WHERE CUST_STATE IN ('IN', 'OH', 'MI', 'IL')
 AND (CUST_NAME LIKE 'A%' OR CUST_NAME LIKE 'B%')
 ORDER BY CUST_NAME;

0 个答案:

没有答案