Sql 将空值列设置为0
我正在从实际表创建临时表。现在在列Rewrite_Count的实际表中,它显示空值。我需要将这些空值替换为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
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;