如果为null或计算值,则将col设置更新为0.00

时间:2013-11-25 15:42:48

标签: mysql sql

如果它是NULL,我试图将列设置为0.00,或者如果它不为空,则设置为计算值。

在下表中,可能并不总是设置最高分数,并且perCent col有时会显示为NULL,这在前端显示中看起来很奇怪。

我正在尝试以下sql,它不会抛出任何错误,也不起作用,这意味着出错了。

我该如何设置呢?

表格

"studentId" "maxScore"  "studentScore"  "stdPerCent"
"1"         "100"       "25"            "25.00"
"2"         "0"         "0"             NULL

的Sql

update scores SET stdPerCent = if(NULL,'0.00',TRUNCATE(100*studentScore/maxScore,2));

1 个答案:

答案 0 :(得分:2)

我发现COALESCE比CASE WHEN更容易使用(和阅读):

UPDATE scores 
SET stdPerCent = COALESCE(TRUNCATE(100*studentScore/maxScore,2), '0.00')

编辑:如果您只是尝试填充NULL字段并且您知道非NULL字段已经正确计算,这将更有意义:

UPDATE scores 
SET stdPerCent = '0.00'
WHERE stdPerCent IS NULL