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);
运行示例 »