通用表表达式 (CTE) 和临时表有什么区别?我什么时候应该使用一个?
CTE
WITH cte (Column1, Column2, Column3)
AS
(
SELECT Column1, Column2, Column3
FROM SomeTable
)
SELECT * FROM cte
Run Code Online (Sandbox Code Playgroud)
临时表
SELECT Column1, Column2, Column3
INTO #tmpTable
FROM SomeTable
SELECT * FROM #tmpTable
Run Code Online (Sandbox Code Playgroud) 从msdn:
与派生表不同,CTE 可以是自引用的,并且可以在同一个查询中多次引用。
我经常使用 CTE,但我从未深入思考使用它们的好处。
如果我在同一个查询中多次引用 CTE: