这是关于数据分析开设的第二个栏目,主要是用来解析sql在实际应用中出现的问题与细节,包含但不限于业务情景分析以及语句使用解析,在一定基础上进行针对性的回顾与提升,小伙伴们一起来吧!
今天带来的是关于在sql中的ifnull函数以及相关的isnull函数应用与区别。
1.ifnull的语法以及情景分析
Ifnull(exp1,exp2)是用来判断是否为空值,若exp1不为空,则执行exp1,否则执行exp2
select ifnull(1,0) #返回1
select ifnull('','sd') #''为非空,所以返回''
select ifnull(NULL,'sd') #第一个表达式为null,所以返回'sd'
经常应用到的业务情景有:若查询某个字段不存在,使用替代字段进行,如:
select name, ifnull(telphone,homephone)
from employees #如果某人的手机号码为空,那么就查询该人的家庭电话
但是在应用中要注意where中最好不要出现ifnull,会影响效率,要是判断是否为空值直接在where加上一个判断条件 is null / is not null
select name, salary
from employees
where salary is not null
2.isnull 与nullif
isnull(exp1) 如果表达式为空,则返回1,否则为0
nullif(exp1,exp2),如果两表达式相等,则返回null,若不相等则返回exp1
一定要注意二者的使用情况