繁体   English   中英

将动态数据透视查询的结果插入到临时表中

[英]insert result of dynamic pivot query into temp table

我有一个动态数据透视查询

     SELECT * FROM (SELECT [SERVICEID],
                    [SERVICETYPEID],[TRAIN],[SERVICETYPEOPTIONID], 
                    [OPTIONNAME], [CLIENTID],[AGENT],  [MANAGEMENTLEGID ],   
                    [LEG],   [ALLOCATIONDATE],[CURRENTALLOCATION] 
   FROM EXCELEXPORT) AS [SubTable]  PIVOT (MAX([CURRENTALLOCATION])FOR [ALLOCATIONDATE] IN ( [02/05/19], [02/07/19], [02/08/19], [02/09/19], [02/10/19]) ) AS [Pivot];

需要将其插入到临时表中。我该如何实现呢?任何输入都是可贵的。

PIVOT用于将数据从一列旋转到多列。

这是使用临时表处理PIVOT查询的DEMO

如果要将EXEC sp_executesql的结果插入到临时表中,则需要首先定义表的定义。

而且由于动态T-SQL语句可能导致返回的列数不同,因此您无需高级定义表。

实际上,您可以使用T-SQL语句预先定义这样的表,但是在其他sp_execuetsql执行或外部范围中不可见:

EXEC sp_executesql N'CREATE TABLE #DataSource ([column] int)';

EXEC sp_executesql N'SELECT * FROM #DataSource';

SELECT *
FROM #DataSource;

因此,您唯一的选择是将所有逻辑包装在动态T-SQL语句中,然后返回结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM