Sql server 2008 何时声明替换空数据
我想把空条目变成零。“金钱”一栏是指花费的金钱。我尝试了以下方法,但它不喜欢将NUll值更改为美元值Sql server 2008 何时声明替换空数据,sql-server-2008,Sql Server 2008,我想把空条目变成零。“金钱”一栏是指花费的金钱。我尝试了以下方法,但它不喜欢将NUll值更改为美元值 money 20.00 17.87 5.00 NULL 3.00 尝试: 编辑 如果要替换表中的值: SELECT IsNull(money, 0) FROM mytable Coalesce将获取列表中的第一个非空值。虽然我同意其他两个答案,但我想解释一下为什么您所做的不正确 select coalesce(money, 0) from mytable 这里您将NULL视为字符串值。但
money
20.00
17.87
5.00
NULL
3.00
尝试:
编辑
如果要替换表中的值:
SELECT IsNull(money, 0)
FROM mytable
Coalesce将获取列表中的第一个非空值。虽然我同意其他两个答案,但我想解释一下为什么您所做的不正确
select coalesce(money, 0) from mytable
这里您将NULL视为字符串值。但是NULL是一个条件不是一个值。这意味着没有已知的值。如果您在该字段的表中插入了实际的单词“null”,那么您的代码就可以工作了
如果要测试空条件,请使用:
select case money when 'NULL' then 0 end
from mytable
或者使用coalesce或ISNULL更改值。如果您需要在case语句中测试NULL,那么您可以这样做:
WHERE field1 IS NULL
对于像您这样的简单情况,COALESCE或ISNULL是最好的。但有时你可能需要做一件非常复杂的事情,然后知道如何做就很方便了 要在MyTable中替换这些值?@user2448666:要替换这些值,您需要一条
UPDATE
语句。该语句可能重复
select case money when 'NULL' then 0 end
from mytable
WHERE field1 IS NULL
CASE WHEN field1 IS NULL THEN 0 ELSE T1 END