SQL 比較運算子

總結:在本教程中,您將學習 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)

試一試

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 = 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)

試一試

SQL comparison operators - is null operator

不等於運算子 (<>) #

不等於 (<>) 運算子比較兩個非 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)

試一試

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 > 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)

試一試

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 < 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)

試一試

SQL comparison operators - less than operator

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

大於或等於運算子 (>=) 比較兩個非 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)

試一試

SQL comparison operators - greater than or equal

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

小於或等於運算子比較兩個非 null 表示式,如果左表示式的值小於或等於右表示式的值,則返回 true;否則,返回 false。(譯者注:原文此處有誤,應為否則返回 false)

下面顯示了小於或等於運算子的語法:

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

例如,以下語句查詢薪水小於或等於 9,000 的員工:

SQL comparison operators - less than or equal operator

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

本教程是否有幫助?
© .