SQL从执行程序中选择SUM(col)?

JK.*_*JK. 3 sql sql-server select exec

SQL Server(2010)中是否有一种简单的方法来执行存储过程(返回表)并在一个(或几个)语句中对一列求和?

例如

SELECT SUM(column) FROM exec proc_GetSomeStuff 'param1', 'param2'
Run Code Online (Sandbox Code Playgroud)

geo*_*tnz 6

没有方便进行测试的服务器,但是请尝试以下操作:

declare @temp table(col1 int)

insert into @temp(col1)
exec proc_GetSomeStuff 'param1', 'param2'

select sum(col1) from @temp
Run Code Online (Sandbox Code Playgroud)

确保您的表变量(或临时表)具有与存储过程结果相同的架构。如果您知道从SP返回大量行,那么使用临时表可能是一个更好的选择。(我不确定如果表变量太大,是否可以将它们清除到磁盘上)