Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 何时声明替换空数据_Sql Server 2008 - Fatal编程技术网

Sql server 2008 何时声明替换空数据

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视为字符串值。但

我想把空条目变成零。“金钱”一栏是指花费的金钱。我尝试了以下方法,但它不喜欢将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