广告

如何使用MySQL中的COALESCE函数返回第一个非空值

什么是COALESCE函数

在MySQL中,COALESCE函数是将多个表达式作为参数,返回第一个非空值的函数。它可以在查询中处理空值,使结果更加规范。

COALESCE函数的语法

COALESCE函数的语法如下:

COALESCE(expr1,expr2,...)

其中,expr1,expr2,...是表达式,可以是常量,列名或者子查询等。

案例演示

子查询中使用COALESCE函数

假设有以下表t1:

idnamescore
1Tom30
2Jacknull
3Lucy60

使用子查询查询出score的最小值:

SELECT MIN(score) FROM t1;

查询结果为null,可以使用COALESCE函数将null值转换为0:

SELECT COALESCE(MIN(score),0) FROM t1;

查询结果为30。

列名中使用COALESCE函数

在查询中,如果要返回多个列的值,可以使用COALESCE函数返回第一个非空值。

假设有以下表t2:

idnamepricediscount
1applenull0.8
2pear2null
3banana30.6

使用COALESCE函数返回商品的实际价格:

SELECT name, COALESCE(price*discount, price) AS actual_price FROM t2;

查询结果如下:

如何使用MySQL中的COALESCE函数返回第一个非空值

nameactual_price
apple0
pear2
banana1.8

在查询结果中,如果price和discount都不为空,则返回price*discount的结果,否则返回price本身的值。

总结

COALESCE函数可以在查询中处理空值,返回第一个非空值。可以在子查询和列名中使用,使查询结果更加规范。

广告

数据库标签