我有2个程序p1和p2,每个程序的结果格式如下
exec p1----> #col1 #col2
P-1 52
P-2 25
EXEC p2----> #col1 #col2
P-1 20
P-2 2
P-3 5
我想在另一个程序中调用这些程序,这个程序将执行两个程序,创建一个临时表并插入两个表的结果,如下所示:
#col1 #col2 #col3
P-1 52 20
P-2 25 2
P-3 NULL 5
我是新手使用Temp表,任何帮助将不胜感激。 此代码必须在SQL Server中运行。 的问候,
答案 0 :(得分:0)
我想这就是你想要的。尝试一下它可以帮到你
根据您的程序输出,请按照以下查询
create table #tempp (col1 varchar(50),col2 bigint)
insert into #temp
exec p1
create table #tempp1 (col1 varchar(50),col2 bigint)
insert into #tempp1
exec p2
select t1.col1,t.col2,t1.col2 from #tempp t
full join #tempp1 t1 on t.col1=t1.col1
我已创建样本数据,就像您的过程输出数据一样,并在我的数据库
中尝试过 select * into #tempp from (
select 'p-1' as col1,52 col2
union all
select 'p-2',25
) as a
select * into #tempp1 from (
select 'p-1' as col1,20 col2
union all
select 'p-2',2
union all
select 'p-3',5
) as a
select t1.col1,t.col2,t1.col2 from #tempp t
full join #tempp1 t1 on t.col1=t1.col1
您的输出看起来像
+------+------+------+
| col1 | col2 | col2 |
+------+------+------+
| p-1 | 52 | 20 |
| p-2 | 25 | 2 |
| p-3 | NULL | 5 |
+------+------+------+