SQL server中一个借助临时表查询数据的代码片段

-- 1. 如有临时表,则清空; 然后查数据写入临时表
if object_id('tempdb..#tmp_order_invoice_table') is not null Begin
drop table #tmp_order_invoice_table
End
declare @orderId int; set @orderId = 575188
select top 100 p.* into #tmp_order_invoice_table
from PaymentOrder p where 1 = 1
order by p.TableId desc;

--2. 读出临时表里当前的内容~~~ 第一处select
select * from #tmp_order_invoice_table;

-- 3. 根据临时表里的字段用在其他的查询中 ~~~ 第二处select
select top 100 * from eInvoice e where e.OrderID in ( select TableId from #tmp_order_invoice_table )
order by e.OrderID desc, e.CreateTime desc;

-- 如上即可一次查出一个较为复杂的内容,看数据,然后做出决策。