nullifzero
如果第一个参数为零,则返回空值,否则返回第一个参数。
nullifzero( x );
如果 x 等于 0,则此函数返回空值;否则返回 x。参数可以是常量值,也可以是任何非字符标量类型的表列。
参数
x
用于测试空值的参数;如果 x 不为零则返回该参数
示例
示例1
nullifzero() 函数可以与如下简单的参数一起使用:
select nullifzero(1), nullifzero(0);
#1 #2
--------------------------------------------------------
1 null
select ifnull( 1, nullifzero(2)), ifnull( nullifzero(0), 2 );
#1 #2
--------------------------------------------------------
1 2
示例2
或者它可以用于不同类型的表列。例如,考虑下面的表 t,用以下两行值进行初始化:
create table t(
i1 int, i2 int,
t1 time, t2 time,
d1 decimal(15,2), d2 decimal(15,2),
b1 boolean, b2 boolean
);
insert into t values(0, 1,
0, '04-02-2019 10:19',
0, 10.2,
0, true);
insert into t values(2, 0,
'04-02-2019 10:23', 0,
10.02, 0,
0, false);
以下的 SELECT 语句使用 nullifzero() 函数在列值为零时返回空值:
select nullifzero(i1) i1, nullifzero(i2) i2,
nullifzero(t1) t1, nullifzero(t2) t2,
nullifzero(d1) d1, nullifzero(d2) d2,
nullifzero(b1) b1, nullifzero(b2) b2
from t;
i1 i2 t1 t2 d1 d2 b1 b2
--------------------------------------------------------
null 1 null 04/02/2019 10:19:00 null 10.20 null true
2 null 04/02/2019 10:23:00 null 10.02 null null null