摘要:在本教學中,您將學習 SQL 比較運算子,以及如何使用它們來形成篩選資料的條件。
SQL 比較運算子允許您測試兩個運算式是否相同。下表說明了 SQL 中的比較運算子
運算子 | 意義 |
---|---|
= | 等於 |
<> | 不等於 |
> | 大於 |
>= | 大於或等於 |
< | 小於 |
<= | 小於或等於 |
比較運算子的結果有三個值:true、false 和 unknown。
等於運算子(=)
等於運算子比較兩個運算式的相等性
expression1 = expression2
Code 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 = NULL
Code 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 <> expression2
Code 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 > expression2
Code 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 < expression2
Code 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 >= expression2
Code 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;否則,傳回 true。
以下顯示小於或等於運算子的語法
expression1 <= expression2
Code language: SQL (Structured Query Language) (sql)
例如,以下語句會找出薪水小於或等於 9,000 的員工

在本教學中,您已學習如何使用比較運算子來形成比較運算式,以根據指定的條件篩選資料。