SQL 比較運算子

摘要:在本教學中,您將學習 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)
SQL comparison operators - Equal Operator example

在這個範例中,查詢會在 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)
SQL comparison operators - is null operator

不等於運算子 (<>)

不等於 (<>) 運算子比較兩個非 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)
SQL comparison operators - not equal to operator example

您可以使用 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)
SQL comparison operators - not equal to operator and AND operator

大於運算子 (>)

大於運算子 (>) 比較兩個非 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)
SQL comparison operators - greater than operator

您可以使用 ANDOR 運算子組合使用各種比較運算子的運算式。例如,以下語句會找出部門 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)
SQL comparison operators - combine operators

小於運算子 (<)

小於運算子比較兩個非 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)
SQL comparison operators - less than operator

大於或等於運算子 (>=)

大於或等於運算子 (>=) 比較兩個非 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)
SQL comparison operators - greater than or equal

小於或等於運算子(<=)

小於或等於運算子比較兩個非 NULL 運算式,如果左運算式的值小於或等於右運算式的值,則傳回 true;否則,傳回 true。

以下顯示小於或等於運算子的語法

expression1 <= expression2Code language: SQL (Structured Query Language) (sql)

例如,以下語句會找出薪水小於或等於 9,000 的員工

SQL comparison operators - less than or equal operator

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

這個教學對您有幫助嗎?