算数及比较运算符

最近更新时间: 2026-03-13 09:03:00

运算符是一个保留字或字符,主要用于指定 SQL 语句中的条件,并在语句中连接多个条件。

  • 算术运算符
  • 比较运算符

算术运算符

算术运算符是用来处理四则运算的符号,是最简单最常用的符号,尤其是数字的处理,几乎都会使用到算术运算符号。
假设变量 a=1,变量 b=2,则:

运算符 描述 示例
+ 加法:运算符两边的值相加 a + b
- 减法:运算符左边减去运算符右边 a - b
* 乘法:把运算符两边的值相乘 a * b
/ 除法:运算符左边除以运算符右边 b / a
% 取模:运算符左边除以运算符右边后得到的余数 b % a

比较运算符

比较运算符用于判断值的大小关系,支持任何可比较的类型,例如:int、long、double 和 text 等。
假设变量 a=1,变量 b=2,则:

运算符 描述 示例
= 判断运算符两边的值是否相等,如果相等则条件为真。 a = b
!= 判断运算符两边的值是否相等,如果不相等则条件为真。 a != b
<> 判断运算符两边的值是否相等,如果不相等则条件为真。 a <> b
> 判断运算符左边的值是否大于运算符右边的值,如果是则条件为真。 a > b
< 判断运算符左边的值是否小于运算符右边的值,如果是则条件为真。 a < b
>= 判断运算符左边的值是否大于等于运算符右边的值,如果是则条件为真。 a >= b
<= 判断运算符左边的值是否小于等于运算符右边的值,如果是则条件为真。 a <= b
IN IN 运算符用于把某个值与一系列指定列表的值进行比较。 status IN (200,206,404)
NOT IN IN 运算符的对立面,用于把某个值与不在一系列指定列表的值进行比较。 status NOT IN (200,206,404)
BETWEEN AND BETWEEN 运算符用于在给定最小值和最大值范围内的一系列值中搜索值。 status between 200 AND 400
LIKE LIKE 运算符用于把某个值与使用通配符运算符的相似值进行比较。%代表零个、一个或者多个字;_代表单个数字或者字符。 url LIKE '%.mp4'
IS NULL NULL 运算符用于把某个值与 NULL 值进行比较,为空为真。 status IS NULL
IS NOT NULL NULL 运算符用于把某个值与 NULL 值进行比较,不为空为真。 status IS NOT NULL
DISTINCT 语法:x IS DISTINCT FROM yx IS NOT DISTINCT FROM y
用于对比 x 和 y 是否相等,与<>的差异在于 DISTINCT 可用于对 null 的比较。
NULL IS NOT DISTINCT FROM NULL
LEAST 语法:LEAST(x, y...)
返回 x,y...中的最小值。
LEAST(1,2,3)
GREATEST 语法:GREATEST(x, y...)
返回 x,y...中的最大值。
GREATEST(1,2,3)
ALL 语法:x expression operator ALL ( subquery )
x 满足所有条件时,返回 true,operator 支持<、>、<=、>=、=、<>、!=
示例1:21 < ALL (VALUES 19, 20, 21)
示例2:* | SELECT 200 = ALL(SELECT status)
ANY / SOME 语法:x expression operator ANY ( subquery )x expression operator SOME ( subquery )
x 满足任意一个条件时,返回 true,operator 支持<、>、<=、>=、=、<>、!=
示例1:'hello' = ANY (VALUES 'hello', 'world')
示例2:* | SELECT 200 = ANY(SELECT status)

<> 与 DISTINCT 运算符差异

x y x = y x <> y x IS DISTINCT FROM y x IS NOT DISTINCT FROM y
1 1 true false false true
1 2 false true true false
1 null null null true false
null null null null false true