在什么情况下,第二个/第三个非null参数将在COALESCE-mysql中返回



[SQL Coalesce函数按顺序计算参数,并始终返回定义的参数列表中的第一个非null值。]https://www.sqlshack.com/using-the-sql-coalesce-function-in-sql-server/

如果总是返回第一个非null参数,为什么要添加第二个/第三个非null的参数,或者只使用IFNULL((?

首先,COALESCE()是标准SQL。我的建议是使用标准的SQL函数,除非您有理由使用IFNULL()之类的定制函数。

其次,IFNULL()被限制为两个参数。COALESCE()更强大,因为它可以接受任意数量的参数。

如果第一个参数为null,则Coalesce返回参数列表中的第一个非null值。这些参数列表可以是常量值,也可以是其他列值的派生值。

主要用于必须从其他列派生值或将null替换为给定列不接受null的列的值的情况。

示例:如果一列表示折扣%,则该值可以是值或0.0,但不能为null。

coalesce(special_discount,base_discount_column,0.05) 

这里的特殊折扣如果为空,则考虑基础折扣值,如果基础折扣也为空,那么默认情况下取5%的折扣。

相关内容

  • 没有找到相关文章

最新更新