1.ifnull
IFNULL ( expression1 , expression2 );
表达式1为null,返回表达式2;表达式1不为null,则返回表达式1。
SELECT IFNULL (SCORE, 0.0) FROM TESTING;
IFNULL
--------
100.0
87.0
.0
.0
.0
(5 rows)
2.nvl
NVL ( expression1 , expression2 );
如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值。
表达式1和表达式2的数据类型必须为同一个类型。
SELECT NVL(SCORE, 0.0) FROM TESTING;
IFNULL
--------
100.0
87.0
.0
.0
.0
(5 rows)
3.nvl2
NVL2 ( expression1 , expression2 , expression3 );
如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。
SELECT NVL2('very', 'fast', 'database');
nvl2
------
fast
(1 row)