↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 7.3 已结束支持。 请参阅 当前版本手册.

6.2. 比较操作符 #

常见的比较操作符都可用,如表 6.1所示。

表 6.1. 比较操作符

操作符描述
< 小于
> 大于
<= 小于或等于
>= 大于或等于
= 等于
<> or != 不等于

注意

!= 操作符在解析器阶段会转换为 <>。不可能实现行为不同的 != 和 <> 操作符。

比较操作符适用于所有相关的数据类型。所有比较操作符都是返回 boolean 类型值的二元操作符;类似 1 < 2 < 3 的表达式是无效的(因为没有用于比较布尔值和 3 的 < 操作符)。

除了比较操作符之外,还可以使用特殊的 BETWEEN 结构。

a BETWEEN x AND y

等价于

a >= x AND a <= y

类似地,

a NOT BETWEEN x AND y

等价于

a < x OR a > y

除了把第一种形式在内部改写为第二种形式所需的 CPU 周期外,这两种形式没有任何区别。

要检查一个值是否为空值,可以使用结构

expression IS NULL
expression IS NOT NULL

或者使用等价但非标准的结构

expression ISNULL
expression NOTNULL

不要写expression = NULL,因为NULL并不“等于”NULL。(null 值表示未知值,而我们并不知道两个未知值是否相等。)

一些应用可能(错误地)要求 expression = NULL 在 expression 求值为空值时返回真。为了支持这类应用,可以打开运行时选项 transform_null_equals(例如 SET transform_null_equals TO ON;)。这样 PostgreSQL 会把 x = NULL 子句转换为 x IS NULL。在 6.5 到 7.1 版本中这是默认行为。

还可以使用下面的结构测试布尔值

expression IS TRUE
expression IS NOT TRUE
expression IS FALSE
expression IS NOT FALSE
expression IS UNKNOWN
expression IS NOT UNKNOWN

这些结构类似于 IS NULL,它们总是返回真或假,即使操作数为空也绝不会返回空值。空输入被视为逻辑值“未知”。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.