TSQL:联合结果来自两个选择(程序?)

Gre*_*egi 5 sql t-sql sql-server union stored-procedures

我有两个程序 - 两个巨大的选择集,有几个子选择和联合.我需要结合这些程序的结果,我仍然需要它们分开存在.

像这样的东西:

if @Param = 1 Then 
    PROCEDURE1
if @Param = 2 THEN 
    PROCEDURE2
if @Param = 3 Then
    PROCEDURE1 union PROCEDURE2
Run Code Online (Sandbox Code Playgroud)

我读到在程序上建立联合是不可能的,我不能使用临时表.

任何的想法?

Gab*_*ams 7

您可以将过程转换为视图.

要么

您可以将过程执行到临时表中,然后将另一个执行到同一个临时表中:

create table #sometable (table definition here)

if @Param = 1 or @Param = 3 begin
    insert #sometable exec PROCEDURE1
end

if @Param = 2 or @Param = 3 begin
    insert #sometable exec PROCEDURE2
end

select * from #sometable
Run Code Online (Sandbox Code Playgroud)