摘要:本教學介紹 SQL AND 運算子,並示範如何將其應用於 SQL 語句的 WHERE
子句中,以形成彈性的條件。
SQL AND 運算子簡介
AND
運算子是一個邏輯運算子,它將兩個布林表達式結合在 WHERE
子句中,用於 SELECT
、UPDATE
或 DELETE
語句中。以下說明 AND
運算子的語法:
expression1 AND expression2;
當兩個表達式都評估為 true 時,AND
運算子會返回 true。如果其中一個表達式為 false,則 AND
運算子會返回 false,即使其中一個表達式為 NULL。
下表說明當比較 true、false 和 NULL 值時,AND
運算子的結果:
TRUE | FALSE | NULL | |
---|---|---|---|
TRUE | TRUE | FALSE | NULL |
FALSE | FALSE | FALSE | FALSE |
NULL | NULL | FALSE | NULL |
SQL AND 運算子範例
我們將使用範例資料庫中的 employees
表格來示範 SQL AND 運算子。

以下語句找出所有職位 ID 為 9 且薪水大於 5,000 的員工:
SELECT
first_name,
last_name,
job_id,
salary
FROM
employees
WHERE
job_id = 9
AND salary > 5000;

要找出所有在 1997 年至 1998 年之間加入公司的員工,您可以使用 AND
運算子,如下所示:
SELECT
first_name,
last_name,
hire_date
FROM
employees
WHERE
YEAR (hire_date) >=1997
AND YEAR (hire_date) <= 1998;
Code language: SQL (Structured Query Language) (sql)
SQL AND 運算子與短路求值
短路功能允許資料庫系統在確定結果後,立即停止評估邏輯表達式的其餘部分。
讓我們來看一個範例,以更好地了解短路求值功能是如何運作的。
請看以下條件:
1 = 0 AND 1 = 1;
資料庫系統會先處理兩個比較,然後使用 AND
運算子來評估這兩個結果。
但是,使用短路求值功能,資料庫系統只需要評估表達式的左側部分,因為左側部分 (1 = 0) 會返回 false,這會導致整個條件返回 false,而無需考慮條件右側部分的結果。
因此,短路功能可以減少 CPU 的運算時間,並且在某些情況下有助於防止執行階段錯誤。考慮以下條件:
1 = 0 AND 1/0;
如果資料庫系統支援短路功能,它將不會評估表達式的右側部分 (1/0),這會導致除以零的錯誤。
現在,您應該了解 SQL AND 運算子的運作方式,以及如何應用它在查詢中形成複雜的條件。