Sql 在sp内的下一个查询中使用一个查询的属性

Sql 在sp内的下一个查询中使用一个查询的属性,sql,sql-server,tsql,stored-procedures,Sql,Sql Server,Tsql,Stored Procedures,我需要从sp返回两个表。我需要第二个表使用第一个表的结果中的属性。我可以这样做 select UberId, ... from A where ...; select * from B where UberId in (select UberId from A where ...); 但是我想知道我是否可以不运行括号内的子查询,而是直接使用第一个查询的输出。它会更有效吗?使用临时表 select UberId, ... into #t from A where ...; select *

我需要从sp返回两个表。我需要第二个表使用第一个表的结果中的属性。我可以这样做

select UberId, ... from A where ...;
select * from B where UberId in (select UberId from A where ...);
但是我想知道我是否可以不运行括号内的子查询,而是直接使用第一个查询的输出。它会更有效吗?

使用临时表

select UberId, ... 
into #t
from A 
where ...;

select * from #t;

select * from B 
where UberId in (select UberId from #t);

不,不能在后一个结果集中引用前一个结果集。但是,如果希望这两个查询(第一个和第二个)是相同的数据,则可能需要将该数据放入临时表中。