我正在研究一个评分系统 MySQL Workbench
而且在很大程度上进展顺利。有一列给我带来了麻烦,并不断导致空值,即使原始数据不包含空值。这是我用来获取列的查询。
SELECT
(CASE days_in_current_status
WHEN days_in_current_status < 1000 THEN 0.33 * 20
WHEN days_in_current_status BETWEEN 1000 and 2000 THEN 0.66 * 20
WHEN days_in_current_status > 2000 THEN 1 * 20
END) AS DI_score
FROM
issues
下面是原始列中的值的图片。
你知道这里少了什么吗?我马上就要睡觉了,明天再试一次,但如果有任何提示,我将不胜感激。
1条答案
按热度按时间lhcgjxsq1#
问题是你写作的方式
CASE
表情。以你所写的形式,它是比较days_in_current_status
价值days_in_current_status < 1000
(或其他逻辑表达式之一),在mysql中1 (true)
或者0 (false)
. 因此,没有一个分支CASE
将匹配(除非days_in_current_status
碰巧是1或0)既然你没有ELSE
子句,结果是NULL
. 如果你重写你的CASE
表达式如下它应该按预期工作。请参阅手册,以了解有关
CASE
表情。