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