↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 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 已于 2007 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本。

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,它们总是返回真或假, 即使操作数为空也绝不会返回空值。 空输入被视为逻辑值“未知”。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。