站长网 MsSql教程 sql – 如何组合来自两个存储过程调用的结果集?

sql – 如何组合来自两个存储过程调用的结果集?

我有一个以下存储过程 CREATE PROCEDURE [dbo].[MyStored] @state intAS SELECT blahblahblah WHERE StoredState=@state LotsOfJoinsFollow;RETURN 0 我想调用@state为0和1的存储过程,并将两个调用返回的结果集与UNION语义结合起来,这样我就有了一个新的结

我有一个以下存储过程

CREATE PROCEDURE [dbo].[MyStored]
   @state int
AS
   SELECT blahblahblah WHERE StoredState=@state LotsOfJoinsFollow;
RETURN 0

我想调用@state为0和1的存储过程,并将两个调用返回的结果集与UNION语义结合起来,这样我就有了一个新的结果集,它包含第一次调用和第二次调用的行.

像(假想的SQL):

(EXEC MyStored 0) UNION (EXEC MyStored 1);

我如何实现这一目标?

解决方法

这可能会过度简化问题,但如果您可以控制sp,只需使用in而不是=:

CREATE PROCEDURE [dbo].[MyStored]
AS
   SELECT blahblahblah WHERE StoredState IN (0,1) LotsOfJoinsFollow;
RETURN 0

如果这不是一个选项,只需将两个sproc调用的结果推送到临时表:

/*Create a table with the same columns that the sproc returns*/
CREATE TABLE #tempblahblah(blahblahblah NVARCHAR(50))

INSERT #tempblahblah ( blahblahblah )
 EXEC MyStored 0

INSERT #tempblahblah ( blahblahblah )
 EXEC MyStored 1

SELECT * FROM #tempblahblah

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/jc/mssql/2021/0523/4443.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部