【发布时间】:2014-03-03 21:46:56
【问题描述】:
我搜索的关于警告的每个问题
警告:空值被聚合或其他 SET 操作消除。
通常人们希望将 NULL 值视为 0。我想要相反,如何修改以下存储过程以使其返回 NULL 而不是 1?
CREATE PROCEDURE TestProcedure
AS
BEGIN
select cast(null as int) as foo into #tmp
insert into #tmp values (1)
select sum(foo) from #tmp
END
GO
我以为是SET ANSI_NULLS ON(我在声明之前、在过程本身以及在我的测试查询中执行过程之前尝试过)但这似乎并没有改变SUM( 的行为。
【问题讨论】:
-
所以如果集合中的任何元素为 null,您希望聚合函数返回 null?
标签: sql sql-server stored-procedures null sql-server-2012