如果列为NULL,我将尝试将其设置为0.00;如果列不为NULL,则设置为计算值。
在下表中,可能并不总是设置最大分数,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));
我发现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