4.2. 比较操作符

Table 4-1. 比较操作符

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

注意: != 操作符在分析器阶段被转换成 <>.把 !=<> 操作符实现为做不同的事是不可能的.

比较操作符可以用于所有可以比较的数据类型.� 所有比较操作符都是双目操作符,返回 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 周期在内部将它改写成第二种形式.

要检查一个值是否为 NULL,使用下面构造

expression IS NULL
expression IS NOT NULL
不要使用 expression = NULL 因为 NULL 是不“等于” NULL 的.(NULL 代表一个未知 的数值,因此我们无法知道两个未知的数值是否相等.) Postgres 隐含地把 = NULL 子句转换成 IS NULL 以允许一些破损的客户端应用(比如象 Microsoft Access)能够运行.但是将来 的版本里可能不会继续这么做了.