IF函数
用法:IF(
expr1
,expr2
,expr3
) 当expr1
为true(expr1
<> 0和expr1
IS NOT NULL)时,返回expr2
,否则返回expr3
。
# 1 > 0 为 true 返回 expr2
select IF(1 > 0,'true','false');
-> 'false'
# true expr2 可返回整数
select IF(true,10,11);
-> 10
# expr1 is not null 为 false 可返回浮点数
select IF(null,10,11.1);
-> 11.1
# expr1 <> 0 为 false
select IF(0,'a','b');
-> 'b'
IFNULL函数
用法:IF(
expr1
,expr2
) 如果expr1
不是NULL
, 则IFNULL()
返回expr1
;否则返回expr2
。
# 当 expr1 为 null 时 返回 expr2
select IFNULL(null,"1")
-> "1"
# 当 expr1 为 0 时 0 is null 为 false 返回 expr1
select IFNULL(0,"1")
-> 0
# 当 expr1 为 false 时 false is null 为 false 返回 expr1
select IFNULL(false,"1")
-> 0
NULLIF函数
用法:NULLIF(
expr1
,expr2
) 若expr1
=expr2
则返回NULL
反之返回expr1
# expr1 != expr2 返回 1
select NULLIF(1,null);
-> 1
# expr1 = expr2 返回 null
select NULLIF(1,1);
-> null
# expr1 != expr2 返回 null
select NULLIF(null,1);
-> null