總結:在本教程中,您將學習 SQL 比較運算子以及如何使用它們來構成篩選資料的條件。
SQL 比較運算子允許您測試兩個表示式是否相同。
下表展示了 SQL 中的比較運算子:
| 運算子 | 含義 |
|---|---|
| = | 等於 |
| <> | 不等於 |
| > | 大於 |
| >= | 大於或等於 |
| < | 小於 |
| <= | 小於或等於 |
比較運算子的結果有三個值之一:true(真)、false(假)和 unknown(未知)。
等於運算子 (=) #
等於運算子比較兩個表示式是否相等。
expression1 = expression2Code language: SQL (Structured Query Language) (sql)如果左邊表示式的值等於右邊表示式的值,它返回 true;否則,返回 false。
例如,以下語句查詢姓氏為 Himuro 的員工:
SELECT
employee_id,
first_name,
last_name
FROM
employees
WHERE
last_name = 'Himuro';Code language: SQL (Structured Query Language) (sql)
在此示例中,查詢在 employees 表的 last_name 列中搜索字串 Himuro。
請注意,等於運算子不能用於比較 null 值。例如,以下查詢的意圖是查詢所有沒有電話號碼的員工:
SELECT
employee_id,
first_name,
last_name,
phone_number
FROM
employees
WHERE
phone_number = NULL;Code language: SQL (Structured Query Language) (sql)然而,它返回一個空的結果集,因為以下表達式總是返回 false。
phone_number = NULLCode language: SQL (Structured Query Language) (sql)要比較 null 值,您應該改用 IS NULL 運算子。
SELECT
employee_id, first_name, last_name, phone_number
FROM
employees
WHERE
phone_number IS NULL;
Code language: SQL (Structured Query Language) (sql)
不等於運算子 (<>) #
不等於 (<>) 運算子比較兩個非 null 表示式,如果左邊表示式的值不等於右邊的值,則返回 true;否則,返回 false。
expression1 <> expression2Code language: SQL (Structured Query Language) (sql)例如,以下語句返回所有部門 ID 不為 8 的員工。
SELECT
employee_id,
first_name,
last_name,
department_id
FROM
employees
WHERE
department_id <> 8
ORDER BY
first_name,
last_name;Code language: SQL (Structured Query Language) (sql)
您可以使用 AND 運算子來組合多個使用不等於 (<>) 運算子的表示式。例如,以下語句查詢部門 ID 不為 8 且不為 10 的所有員工。
SELECT
employee_id,
first_name,
last_name,
department_id
FROM
employees
WHERE
department_id <> 8
AND department_id <> 10
ORDER BY
first_name,
last_name;Code language: SQL (Structured Query Language) (sql)
大於運算子 (>) #
大於運算子 (>) 比較兩個非 null 表示式,如果左運算元大於右運算元,則返回 true;否則,結果為 false。
expression1 > expression2Code language: SQL (Structured Query Language) (sql)例如,要查詢薪水大於 10,000 的員工,您可以在 WHERE 子句中使用大於運算子,如下所示:
SELECT
employee_id,
first_name,
last_name,
salary
FROM
employees
WHERE
salary > 10000
ORDER BY
salary DESC;Code language: SQL (Structured Query Language) (sql)
您可以使用 AND 或 OR 運算子來組合使用各種比較運算子的表示式。例如,以下語句查詢部門 8 中薪水大於 10,000 的員工:
SELECT
employee_id, first_name, last_name, salary
FROM
employees
WHERE
salary > 10000 AND department_id = 8
ORDER BY salary DESC;
Code language: SQL (Structured Query Language) (sql)
小於運算子 (<) #
小於運算子比較兩個非 null 表示式。如果左運算元的求值結果小於右運算元的值,則結果為 true;否則,結果為 false。
下面展示了小於運算子的語法:
expression1 < expression2Code language: SQL (Structured Query Language) (sql)例如,以下語句返回所有薪水小於 10,000 的員工:
SELECT
employee_id,
first_name,
last_name,
salary
FROM
employees
WHERE
salary < 10000
ORDER BY
salary DESC;Code language: SQL (Structured Query Language) (sql)
大於或等於運算子 (>=) #
大於或等於運算子 (>=) 比較兩個非 null 表示式。如果左表示式的求值結果大於或等於右表示式的值,則結果為 true。
下面說明了大於或等於運算子的語法:
expression1 >= expression2Code language: SQL (Structured Query Language) (sql)例如,以下語句查詢薪水大於或等於 9,000 的員工:
SELECT
employee_id,
first_name,
last_name,
salary
FROM
employees
WHERE
salary >= 9000
ORDER BY
salary;Code language: SQL (Structured Query Language) (sql)
小於或等於運算子 (<=) #
小於或等於運算子比較兩個非 null 表示式,如果左表示式的值小於或等於右表示式的值,則返回 true;否則,返回 false。(譯者注:原文此處有誤,應為否則返回 false)
下面顯示了小於或等於運算子的語法:
expression1 <= expression2Code language: SQL (Structured Query Language) (sql)例如,以下語句查詢薪水小於或等於 9,000 的員工:

在本教程中,您學習瞭如何使用比較運算子來構成比較表示式,以便根據指定條件篩選資料。