money
20.00
17.87
5.00
NULL
3.00
我希望空条目变成零。钱栏是用于花费的钱。我尝试了以下方法,但它不喜欢将 NUll 更改为美元值。
select case money when 'NULL' then 0 end
from mytable
money
20.00
17.87
5.00
NULL
3.00
我希望空条目变成零。钱栏是用于花费的钱。我尝试了以下方法,但它不喜欢将 NUll 更改为美元值。
select case money when 'NULL' then 0 end
from mytable
select coalesce(money, 0) from mytable
Coalesce 将采用列表中的第一个非空值。
虽然我同意其他两个答案,但我不想解释为什么你做的不对。
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,然后知道如何去做就很方便了。
尝试:
SELECT IsNull(money, 0)
FROM mytable
编辑
如果要替换表中的值:
UPDATE mytable
SET money = 0
WHERE money Is Null