PostgreSQL IN 运算符
IN
IN
运算符允许您在 WHERE
子句中指定可能值的列表。
IN
运算符是多个 OR
条件的简写。
实例
返回所有来自 'Germany', France' 或 'UK' 的客户:
SELECT * FROM customers
WHERE country IN ('Germany', 'France', 'UK');
NOT IN
通过在 IN
运算符前面使用 NOT
关键字,可以返回不是列表中任何值的所有记录。
实例
返回所有非 'Germany', France' 或 'UK' 的客户:
SELECT * FROM customers
WHERE country NOT IN ('Germany', 'France', 'UK');
IN (SELECT)
您也可以在括号内使用 SELECT
语句来返回 SELECT
语句结果中的所有记录。
实例
返回 orders
表中有订单的所有客户:
SELECT * FROM customers
WHERE customer_id IN (SELECT customer_id FROM orders);
NOT IN (SELECT)
上例中的结果返回了 89 条记录,这意味着有 2 个客户没有下任何订单。
让我们使用 NOT IN
运算符来检查这是否正确。
实例
返回 orders
表中未下任何订单的所有客户:
SELECT * FROM customers
WHERE customer_id NOT IN (SELECT customer_id FROM orders);