SQL 比较运算符

摘要:在本教程中,您将学习 SQL 比较运算符以及如何使用它们形成过滤数据的条件。

使用 SQL 比较运算符,您可以检验两个表达式是否相同。下表说明了 SQL 中的比较运算符

运算符含义
=等于
<>不等于
>大于
>=大于或等于
<小于
<=小于或等于

比较运算符的结果有三个值之一,即真、假和未知。

等于运算符 (=)

等于运算符比较两个表达式的相等性

expression1 = expression2
Code language: SQL (Structured Query Language) (sql)

如果左表达式的值等于右表达式的值,则返回真;否则,返回假。

例如,以下声明查找姓氏为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

请注意,无法使用等于运算符来比较空值。例如,以下查询的目的是找到所有没有电话号码的员工

SELECT 
    employee_id, first_name, last_name, phone_number
FROM
    employees
WHERE
    phone_number = NULL;
Code language: SQL (Structured Query Language) (sql)

但是,它返回一个空结果集,因为以下表达式始终返回假。

phone_number = NULL
Code language: SQL (Structured Query Language) (sql)

若要比较空值,请使用 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

不等于运算符 (<>)

不等于 (<>) 运算符比较两个非空表达式,如果左表达式的值不等于右表达式的值,则返回真;否则,返回假。

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 不是八或十的所有员工。

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

大于运算符 (>)

大于运算符 (>) 比较两个非空表达式,如果左操作数大于右操作数,则返回真;否则,结果为假。

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

小于运算符 (<)

小于运算符比较两个非空表达式。如果左操作数计算得出的值低于右操作数的值,则结果为真;否则,结果为假。

以下是小于运算符的语法

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

大于或等于运算符 (>=)

大于或等于运算符 (>=) 比较两个非空表达式。如果左表达式计算得出的值大于右表达式的值,则结果为真。

以下是大于或等于运算符的语法说明

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

小于或等于运算符(<=)

小于或等于运算符比较两个非空表达式,如果左表达式小于或等于右表达式的值,则返回 true,否则,返回 true。

以下是小于或等于运算符的语法

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

例如,如下语句查找薪水小于或等于 9,000 的员工

SQL comparison operators - less than or equal operator

在本教程中,你已经了解了如何使用比较运算符来形成比较表达式,根据指定条件过滤数据。

本教程是否有用?