时间戳转换器

将 with cte 查询的结果插入临时表

日期:2023-02-16     浏览:25    
【中文标题】将 with cte 查询的结果插入临时表【英文标题】:Inserting the result of a with cte query into a Temp Table 【发布时间】:2015-05-03 17:17:43 【问题描述】:

我想将此查询的结果存储到临时表中:

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

提前致谢。

【问题讨论】:

【参考方案1】:

假设这是针对 SQL Server 的:CTE 仅适用于 one 语句 - 所以你不能同时拥有 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

相关文章

将多个 CTE 与多个临时表一起使用

{...在WindowsServer中,我尝试使用多个CTE收集数据,并将它们插入到几个临时表中,以便稍后执行连接。下面是我得到的。:------TEMPTABLESETUP------IFEXISTS(SELECT*FROMtempdb.dbo.sysobj}

CTE、子查询、临时表或表变量之间是不是存在性能差异?

{】CTE、子查询、临时表或表变量之间是不是存在性能差异?【英文标题】:IsthereaperformancedifferencebetweenCTE,Sub-Query,TemporaryTableorTableVariable?CTE、子查询、临时表或表变量之间是否存在性能差异?【发布时间】:2012-06-2512:58:33【问题...}

如何使用 SELECT * INTO tempTable FROM CTE 查询创建临时表

{】如何使用SELECT*INTOtempTableFROMCTE查询创建临时表【英文标题】:HowtocreateTemptablewithSELECT*INTOtempTableFROMCTEQuery【发布时间】:2012-07-1412:42:12【问题描述】:我有一个MSSQLCTE查询,我想从中创建一个临时表。我不知道该怎么做,因为...}

postgresql递归查询示例

{PostgreSQL提供了WITH语句,允许你构造用于查询的辅助语句。这些语句通常称为公共表表达式或cte。cte类似于只在查询执行期间存在的临时表。递归查询是指递归CTE的查询。递归查询在很多情况下都很有用,比如查询组织结构、物...}

SQL 在 If 和 Else 块中插入临时表

{...,临时表都将具有相同的结构,但将根据条件使用不同的查询来填充。下面的简化示例脚本在ELSE块INSERTINTO的语法检查中失败,错误为:已经有一个对象名为数据库中的“#My}

sql视图,临时表,cte,派生表(代码片段)

{}

哪个性能更高,CTE 或临时表?

{】哪个性能更高,CTE或临时表?【英文标题】:Whicharemoreperformant,CTEortemporarytables?【发布时间】:2010-10-1523:36:19【问题描述】:CTE或TemporaryTables哪个性能更高?【问题讨论】:相关问题:dba.stackexchange.com/q/13112用户可以在technet.mic...}

sql表表达式-视图,临时表,表变量,派生表,表值函数,公用表表达式(cte)(代码片段)

{}

将索引添加到 CTE

{...用计划指南通过将EagerSpool添加到计划中来获取缓存的CTE结果。这会在tempdb中为它们建立一个临时索引。【参考方案1】:没有。CTE是一个临时的“内联}

cte内部有多个子查询(代码片段)

{...什么我不能将下面的代码转换成CTE?是因为它有太多的子查询?请协助。我打算使用以下查询的结果作为临时表来加入。当我运行下面的代码而不添加“WITHCTEas(”语法运行完美,但是一旦我添加语法,我得到一个错误:BIC00004...}

Copyright ©2021 时间戳转换器 小常识 114pp | 陕ICP备18005036号