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; 否则其返回值为   expr2IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。

实例:

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,输出“女”。

原文地址:https://www.cnblogs.com/yangchunze/p/6667620.html