插入的与CTE查询结果到一个临时表
问题描述:
我想把这个查询的结果存储到一个临时表:插入的与CTE查询结果到一个临时表
WITH cOldest AS
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY [MyKey] ORDER BY SomeColumn DESC) AS rnDOB
FROM MyTable
)
SELECT
C.*
*** Insert into #MyTempTable *** This part doesn't work
FROM
cOldest C
WHERE
C.rnDOB = 1
在此先感谢。
答
假设这是SQL服务器:热膨胀系数是好的只有一个声明 - 所以你不能同时拥有SELECT
和INSERT
- 只使用INSERT
:
WITH cOldest AS
(
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY [MyKey] ORDER BY SomeColumn DESC) AS rnDOB
FROM MyTable
)
INSERT INTO #MyTempTable(Col1, Col2, ....., ColN)
SELECT Col1, Col2, ...., ColN
FROM cOldest C
WHERE C.rnDOB = 1
这就要求#MyTempTable
已经存在。如果要用SELECT
创建它 - 请使用以下语法:
WITH cOldest AS
(
.....
)
SELECT c.*
INTO #MyTempTable
FROM cOldest c
WHERE C.rnDOB = 1
感谢马克!我意识到为了能够导出临时表,它必须是全局临时表。进入## MyTempTable @marc_s – Ariox66 2015-03-06 07:53:36