是的,您可以将结果存储在变量中,并在以后多次重用。在您的情况下,它将是一个,
tablevariable因为您可能有多个项目。然后,将其简化
join为初始查询:
DECLARE @Logs TABLE( [LogID] INT);INSERT INTO @Logs ([LogID])Select tblLog.ReqID from tblLog where tblLog.LogDate >= '2015/04/01' and tblLog.LogDate < '2015/05/31'select * from tblReq AINNER JOIN @Logs L ON A.ReqID = L.LogID
另外,这可能会损害您的查询性能,因为表变量
black box与查询优化器不同。如果要存储大量行,请改用
temporary表,以便使用并行执行计划。



