MySql 里的IFNULL、NULLIF、ISNULL和IF用法
isnull(expr) 的用法:
如expr 为null,那么isnull() 的返回值为 1,否则返回值为 0。
实例:
select ISNULL(NULL)
输出结果:1
select ISNULL(100)
输出结果:0
IFNULL(expr1,expr2)的用法:
假如expr1不为NULL,则IFNULL() 的返回值为expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
实例:
select IFNULL(200,100)
输出结果:
200
select IFNULL(NULL,100)
输出结果:
100
NULLIF(expr1,expr2) 的用法:
如果expr1 = expr2成立,那么返回值为NULL,否则返回值为expr1。这和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END相同。
实例:
select NULLIF(1,1)
输出结果:
NULL
select NULLIF(2,1)
输出结果:2
IF(expr1,expr2,expr3) 的用法:
如果 expr1 是TRUE (expr1 <>(不等于) 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
select *,if(sva=1,"男","女") as ssva from taname where sva != ""
输出结果:
如果sva是1,输出“男”,如果不是1,输出“女”。