在CTE SQL Server 2012之前创建#temp

use*_*575 -1 sql sql-server sql-server-2012

我需要在我的CTE列表之前创建一个#temp表:s,这样我最终可以用它来执行计算.

这是我到目前为止所写的:

SELECT DISTINCT

SUM(X+Y) AS Total

INTO #Summary
FROM Table

WITH CTE_START AS
(
  SELECT DISTINCT *
  FROM TableX
)
Run Code Online (Sandbox Code Playgroud)

....

我甚至尝试将我的#Summary创建为CTE,然后在FROM之前编写INTO.这是行不通的.

我看过类似的问题:CTE和临时表

我没有找到任何有用的东西.如何在WITH CTE_START开始处理之前创建一个#temp表?

Ed *_*d B 5

您需要使用分号在CTE之前终止语句,否则SQL Server不知道WITH它不是前一个语句的一部分,例如表提示的一部分.

例如:

SELECT DISTINCT SUM(X+Y) AS Total INTO #Summary FROM Table;

WITH CTE_START AS ( SELECT DISTINCT * FROM TableX ) 
SELECT * FROM CTE_START
Run Code Online (Sandbox Code Playgroud)