有表emp记录员工信息,有字段empid、sal、comm分别记录员工编号、员工基本工资、员工提成。其中comm可能存在null值。现在要计算员工总工资,代码正确的有( )
A. SELECT *, sal+comm as 总工资 from emp;
B. SELECT *, sal + if(comm is null, 0, comm) as 总工资 from emp;
C. SELECT *, ifnull(sal+comm, sal) as 总工资 from emp;
D. SELECT *, sal + ifnull(comm, 0) as总工资 from emp;
参考答案: B,C,D
解析:comm存在null值的情况下,计算前要进行非null判断,所以A错。
IFNULL(expression, value)
参数说明:
expression:要判断是否为NULL的表达式或字段。
value:在expression为NULL时要返回的替代值。