gpt4 book ai didi

mysql - IS NULL 的 CASE 未按预期替换

转载 作者:行者123 更新时间:2023-11-29 10:18:30 24 4
gpt4 key购买 nike

我有一个简单的列,其中包含一些数字,看起来像;

133
8
55
11
NULL
NULL
235
NULL

我想在选择此列时设置默认值,目的是替换空值。我已经完成了;

 CASE
WHEN round(avg(s.seconds)) IS NULL THEN 0
ELSE round(avg(s.seconds))

END as 'seconds'

但是,我的空值仍然存在。我的期望是它们会被设置为 0。为什么这不起作用?

最佳答案

平均计算中忽略 NULL 值。

如果您想将平均值中的 NULL 值替换为 0,则需要在平均值函数内对这些值使用 COALESCE。示例如下:

DROP TEMPORARY TABLE IF EXISTS TEMP1;

CREATE TEMPORARY TABLE TEMP1
SELECT 1 AS price
UNION ALL SELECT NULL AS price
UNION ALL SELECT NULL AS price
UNION ALL SELECT 3 AS price;

SELECT * FROM TEMP1; # List values (1, NULL, NULL, 3)
SELECT AVG(price) FROM TEMP1; # Returns 2 (NULL values IGNORED)
SELECT AVG(COALESCE(price,0)) FROM TEMP1; # Returns 1 (NULL values REPLACED with 0)

关于mysql - IS NULL 的 CASE 未按预期替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49751747/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com