如果它是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));
答案 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