简单表达式
逻辑表达式
逻辑表达式的操作符和运算规则,请参见逻辑操作符。
比较表达式
常用的比较操作符,请参见操作符。
除比较操作符外,还可以使用以下句式结构:
BETWEEN操作符
a BETWEEN x_ _ AND y等效于a >= x AND a <= y
a NOT BETWEEN_ _ x AND y等效于a < x OR a > y
检查一个值是不是null,可使用:
expression_ _IS NULL
expression IS NOT NULL
或者与之等价的句式结构,但不是标准的:
expression_ _ ISNULL
expression NOTNULL
须知:
不要写expression=NULL或expression<>(!=)NULL,因为NULL代表一个未知的值,不能通过该表达式判断两个未知值是否相等。
示例
postgres=# SELECT 2 BETWEEN 1 AND 3 AS RESULT;
result
----------
t
(1 row)
postgres=# SELECT 2 >= 1 AND 2 <= 3 AS RESULT;
result
----------
t
(1 row)
postgres=# SELECT 2 NOT BETWEEN 1 AND 3 AS RESULT;
result
----------
f
(1 row)
postgres=# SELECT 2 < 1 OR 2 > 3 AS RESULT;
result
----------
f
(1 row)
postgres=# SELECT 2+2 IS NULL AS RESULT;
result
----------
f
(1 row)
postgres=# SELECT 2+2 IS NOT NULL AS RESULT;
result
----------
t
(1 row)
postgres=# SELECT 2+2 ISNULL AS RESULT;
result
----------
f
(1 row)
postgres=# SELECT 2+2 NOTNULL AS RESULT;
result
----------
t
(1 row)
postgres=# SELECT 2+2 IS DISTINCT FROM NULL AS RESULT;
result
----------
t
(1 row)
postgres=# SELECT 2+2 IS NOT DISTINCT FROM NULL AS RESULT;
result
----------
f
(1 row)
伪列
ROWNUM
ROWNUM是一个伪列, 它返回一个数字表示从查询中获取结果的行编号,第一行的ROWNUM为1, 第二行的为2,依此类推。ROWNUM的返回类型为BIGINT。ROWNUM可以用于限制查询返回的总行数, 例如下面查询用于从Students表中返回最多10条记录。
select * from Students where rownum <= 10;