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);

运行实例