首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL IN 函數完全指南:簡化多條件查詢的利器

     編輯:關於SqlServer

核心價值

IN 函數可替代多個 OR 條件,語法簡潔、可讀性高,適用於 SELECT、INSERT、UPDATE、DELETE 等所有合法 SQL 陳述式。

基本語法

SELECT columns
FROM tables
WHERE column1 IN (value1, value2, ..., value_n);

範例 1:基本查詢

SELECT *
FROM supplier
WHERE supplier_name IN ('IBM', 'Hewlett Packard', 'Microsoft');

範例 2:搭配子查詢

SELECT *
FROM orders
WHERE customer_id IN (SELECT id FROM customers WHERE country = 'USA');

範例 3:NOT IN 排除特定值

SELECT *
FROM products
WHERE category_id NOT IN (10, 20, 30);

效能考量

  • 值列表較短時,IN 通常最佳化為多個 OR
  • 值列表極長(超過數千)可能影響編譯時間,考慮改用 JOIN 臨時表或表值參數
  • NOT IN 遇 NULL 值會導致整個判斷為 UNKNOWN,建議改用 NOT EXISTS

IN vs EXISTS 對照

場景建議
靜態值列表IN 更簡潔
子查詢回傳大量資料EXISTS 通常更快
子查詢含 NULL避免 NOT IN,用 NOT EXISTS
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved