您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

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

 ISNULL


expression

 NOTNULL

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

布尔数值可以用下面的构造进行测试



expression

 IS TRUE


expression

 IS NOT TRUE


expression

 IS FALSE


expression

 IS NOT FALSE


expression

 IS UNKNOWN


expression

 IS NOT UNKNOWN

这些构造类似 IS NULL ,因为它们将总是返回 TRUE 或者 FALSE,决不会返回 NULL,即时它们的操作数是 NULL 也一样. NULL 输入被当做逻辑数值 UNKNOWN.