Sql 将空值列设置为0

Sql 将空值列设置为0,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在从实际表创建临时表。现在在列Rewrite_Count的实际表中,它显示空值。我需要将这些空值替换为0。有人能帮我找到正确的密码吗 SELECT * INTO policy.Fact_Monthly_Policy_Snap_20190403 FROM Policy.Fact_Monthly_Policy_Snap; 基本上可以更新列的值: update policy.Fact_Monthly_Policy_Snap_20190403 set Rewrite_Count = 0 wher

我正在从实际表创建临时表。现在在列Rewrite_Count的实际表中,它显示空值。我需要将这些空值替换为0。有人能帮我找到正确的密码吗

SELECT *
INTO policy.Fact_Monthly_Policy_Snap_20190403
FROM Policy.Fact_Monthly_Policy_Snap;

基本上可以更新列的值:

update policy.Fact_Monthly_Policy_Snap_20190403
set Rewrite_Count  = 0
where Rewrite_Count is null
上述解决方案假定“重写计数”列的类型为整数。

试试这个

update policy.Fact_Monthly_Policy_Snap_20190403
set Rewrite_Count  = IsNull(Rewrite_Count,0)
where Rewrite_Count is null
使用
ISNULL()


默认值
添加到
Monthly\u Policy\u Snap
上的
Rewrite\u Count
字段中。这样,如果有人向表中添加了一条记录,并且没有为
每月\u Policy\u Snap
指定一个值,系统会将其设置为0

您可以使用
altertable。。。更改列


阅读有关默认约束的更多信息。

注意Select into语句只复制一些属性,如列名、数据类型,但最重要的是它不包括约束、触发器等


可以使用coalesce和isnull替换为0。Coalesce是标准的,isnull是特定于tsql的。如果源列不为null,那么coalesce和isnull都会将结果列的属性设置为notnull。但是,如果源列为null,则isnull会将结果列设置为NOTNULL。

1)您没有创建临时表。2) 使用
ISNULL(列,0)
SELECT
Hi Sam中,是的,我没有创建抱歉,我正在将快照表数据选择到表20190403中。是否每个包含NULL的列都是数字数据类型?如果您共享表和数据的一些详细信息,这会有所帮助。null有什么问题?0并不意味着相同的…@jarlh“null有什么问题?”--哲学上。。。嗯,很多事情:首先,没有人知道这意味着什么。只是开玩笑。这只是更新了snap_20190403。我需要每月\u策略\u快照表的ISNULL=0逻辑。@Sam您需要ISNULL=0逻辑是什么意思?你想删除重写计数为空的数据吗?既然你在
where
子句中包含
Rewrite\u Count为空
,为什么需要
ISNULL()
?他不确定是否要更新数据,提示:关于
COALESCE
ISNULL
的好信息可以在SQLServerPro和MSDN博客上找到。
SELECT ISNULL(Rewrite_Count, 0) Rewrite_Count, --Other columns
INTO policy.Fact_Monthly_Policy_Snap_20190403
FROM Policy.Fact_Monthly_Policy_Snap;