带有 AND 或 OR 的条件

您可将简单的条件与逻辑运算符 AND 或 OR 组合来形成复合的条件。

下列 SELECT 语句在它们的 WHERE 子句中包含复合的条件的示例:
SELECT customer_num, order_date FROM orders
        WHERE paid_date > '1/1/97' OR paid_date IS NULL;
        SELECT order_num, total_price FROM items
        WHERE total_price > 200.00 AND manu_code LIKE 'H
        SELECT lname, customer_num FROM customer
        WHERE zipcode BETWEEN '93500' AND '95700' 
        OR state NOT IN ('CA', 'WA', 'OR');

下列真值表展示 AND 和 OR 运算符的作用。字母 T 代表 TRUE 条件,F 代表 FALSE 条件,问号(?)代表 UNKNOWN 值。当使用逻辑运算符的表达式的一部分为 NULL 时,可发生 UNKNOWN 值。
起始图描述 - 在周围的文本中描述此图 - 结束图描述

在左边的临界值代表第一个操作对象,最上面一行中的值代表第二个操作对象。每一 3x3 矩阵内的值展示将该操作符应用于那些值的操作对象之后所返回的值。

如果布尔表达式球值为 UNKNOWN。则不满足该条件。

请考虑下列 WHERE 子句内的示例:
WHERE ship_charge/ship_weight < 5
      AND order_num = 1023

order_num = 1023 的行是 ship_weight 为 NULL 的行。因为 ship_weight 为 NULL,所以 ship_charge/ship_weight 也是 NULL;因此, ship_charge/ship_weight < 5 的真值是 UNKNOWN。因为 order_num = 1023 为 TRUE,因此,AND 表声明整个条件的真值为 UNKNOWN。因此,不选择那行。如果在 AND 的位置使用 OR 作为条件,则该条件会是 TRUE