您可将简单的条件与逻辑运算符 AND 或 OR 组合来形成复合的条件。
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 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。