什么是COALESCE函数
在MySQL中,COALESCE函数是将多个表达式作为参数,返回第一个非空值的函数。它可以在查询中处理空值,使结果更加规范。
COALESCE函数的语法
COALESCE函数的语法如下:
COALESCE(expr1,expr2,...)
其中,expr1,expr2,...是表达式,可以是常量,列名或者子查询等。
案例演示
子查询中使用COALESCE函数
假设有以下表t1:
id | name | score |
---|---|---|
1 | Tom | 30 |
2 | Jack | null |
3 | Lucy | 60 |
使用子查询查询出score的最小值:
SELECT MIN(score) FROM t1;
查询结果为null,可以使用COALESCE函数将null值转换为0:
SELECT COALESCE(MIN(score),0) FROM t1;
查询结果为30。
列名中使用COALESCE函数
在查询中,如果要返回多个列的值,可以使用COALESCE函数返回第一个非空值。
假设有以下表t2:
id | name | price | discount |
---|---|---|---|
1 | apple | null | 0.8 |
2 | pear | 2 | null |
3 | banana | 3 | 0.6 |
使用COALESCE函数返回商品的实际价格:
SELECT name, COALESCE(price*discount, price) AS actual_price FROM t2;
查询结果如下:
name | actual_price |
---|---|
apple | 0 |
pear | 2 |
banana | 1.8 |
在查询结果中,如果price和discount都不为空,则返回price*discount的结果,否则返回price本身的值。
总结
COALESCE函数可以在查询中处理空值,返回第一个非空值。可以在子查询和列名中使用,使查询结果更加规范。