pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
常见的比较操作符都可用,如表 9.1所示。
表 9.1. 比较操作符
| 操作符 | 描述 |
|---|---|
< |
小于 |
> |
大于 |
<= |
小于或等于 |
>= |
大于或等于 |
= |
等于 |
<> or != |
不等于 |
!= 操作符在解析器阶段会转换为 <>。不可能实现行为不同的 != 和 <> 操作符。
比较操作符适用于所有相关的数据类型。所有比较操作符都是返回 boolean 类型值的二元操作符;类似 1 < 2 < 3 的表达式是无效的(因为没有用于比较布尔值和 3 的 < 操作符)。
除了比较操作符之外,还可以使用特殊的 BETWEEN 结构。
aBETWEENxANDy
等价于
a>=xANDa<=y
类似地,
aNOT BETWEENxANDy
等价于
a<xORa>y
除了把第一种形式在内部改写为第二种形式所需的 CPU 周期外,这两种形式没有任何区别。
要检查一个值是否为空值,可以使用结构
expressionIS NULLexpressionIS NOT NULL
或者使用等价但非标准的结构
expressionISNULLexpressionNOTNULL
不要写,因为expression = NULLNULL并不“等于”NULL。(null 值表示未知值,而我们并不知道两个未知值是否相等。)
一些应用可能(错误地)要求 在 expression = NULLexpression 求值为空值时返回真。为了支持这类应用, 可以打开运行时选项 transform_null_equals(例如 SET transform_null_equals TO ON;)。 这样 PostgreSQL 会把 x = NULL 子句转换为 x IS NULL。在 6.5 到 7.1 版本中这 是默认行为。
还可以使用下面的结构测试布尔值
expressionIS TRUEexpressionIS NOT TRUEexpressionIS FALSEexpressionIS NOT FALSEexpressionIS UNKNOWNexpressionIS NOT UNKNOWN
这些结构类似于 IS NULL,它们总是返回真或假, 即使操作数为空也绝不会返回空值。 空输入被视为逻辑值“未知”。
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。