or,and,求值顺序解决方法
此问题的解决方法是使用圆括号对操作符进行明确分组。请看下面的SELECT
语句及输出:
输入▼
SELECT prod_name, prod_price FROM Products WHERE (vend_id = ‘DLL01‘ OR vend_id = ‘BRS01’) AND prod_price >= 10;
提示:在WHERE
子句中使用圆括号 任何时候使用具有AND
和OR
操作符的WHERE
子句,都应该使用圆括号明确地分组操作符。不要过分依赖默认求值顺序,即使它确实如你希望的那样。使用圆括号没有什么坏处,它能消除歧义。
5.2 IN操作符
IN
操作符用来指定条件范围,范围中的每个条件都可以进行匹配。IN
取一组由逗号分隔、括在圆括号中的合法值。下面的例子说明了这个操作符:
输入▼
SELECT prod_name, prod_price
FROM Products
WHERE vend_id IN ( ‘DLL01‘, ‘BRS01‘ )
ORDER BY prod_name;
5.3 NOT操作符
WHERE
子句中的NOT
操作符有且只有一个功能,那就是否定其后所跟的任何条件。因为NOT
从不单独使用(它总是与其他操作符一起使用),所以它的语法与其他操作符有所不同。NOT
关键字可以用在要过滤的列前,而不仅是在其后。
NOT
WHERE
子句中用来否定其后条件的关键字。
下面的例子说明NOT
的用法。为了列出除DLL01
之外的所有供应商制造的产品,可编写如下的代码:
输入▼
SELECT prod_name
FROM Products
WHERE NOT vend_id = ‘DLL01‘
ORDER BY prod_name;
时间: 2024-10-05 16:42:49