money
20.00
17.87
5.00
NULL
3.00
我希望将空条目变为零。钱栏是用于花钱的。我尝试了以下内容,它不喜欢将NUll更改为美元值。
select case money when 'NULL' then 0 end
from mytable
答案 0 :(得分:3)
select coalesce(money, 0) from mytable
Coalesce将获取列表中的第一个非空值。
答案 1 :(得分:2)
尝试:
SELECT IsNull(money, 0)
FROM mytable
修改强>
如果您想替换表格中的值:
UPDATE mytable
SET money = 0
WHERE money Is Null
答案 2 :(得分:2)
虽然我同意其他两个答案,但我还是要解释为什么你所做的不对。
select case money when 'NULL' then 0 end
from mytable
这里将NULL视为字符串值。但NULL是条件而不是值。这意味着没有已知的价值。如果您将实际单词'null'插入该字段中的表中,那么您的代码就可以工作了。
如果要测试NULL条件,请使用:
WHERE field1 IS NULL
或使用coalesce或ISNULL更改值。如果你需要测试NULL作为case语句的一部分,那么你会这样做:
CASE WHEN field1 IS NULL THEN 0 ELSE T1 END
对于像你这样的简单案例,COALESCE或ISNULL是最好的。但有时您可能需要做一个非常复杂的CASE,然后知道如何做它很方便。