我有一个过程,它在一组计算后返回一个select语句输出。执行程序的输出如下:
exec proc1 empID
输出如下
col1 col2 col3 col4 col5
2014 2 33 330 29
2014 3 10 34 12
2015 1 25 60 55
现在我有一个主select语句,它通过连接不同的表来获得许多列。
我需要检索上面的列(存储过程proc1
的输出)到主select语句,对于可用的empID
。
如下所示:
select empID, empName, empSal,
(select col3 from [exec proc1 empID] where col2=1),
empDept
from tblemployee
有可能吗?我期待上面查询的第4列中的25个。
答案 0 :(得分:1)
您可以使用User-defined function
或view
代替存储过程。
sp不允许select
使用它。
或者你可以
Declare @TempTable Table (...)--declare all columns
将存储过程的输出插入表变量,然后
Insert @TempTable Exec storedProcname params
根据需要完全加入Temp表变量
注意强>
但上述方法有局限性 INSERT @Temptable的问题是
INSERT EXEC语句不能嵌套
。如果您的存储过程中已经有一个INSERT EXEC,它将会中断。