如何在此問題中顯示SQL Server查詢的結果:Transform a table from rows to columns,並將其寫入新表中?將查詢結果寫入新表
我嘗試以下,但它不工作:
SELECT * INTO [dbo.table] FROM query;
如何在此問題中顯示SQL Server查詢的結果:Transform a table from rows to columns,並將其寫入新表中?將查詢結果寫入新表
我嘗試以下,但它不工作:
SELECT * INTO [dbo.table] FROM query;
多部分名schema_name.table_name:
SELECT *
INTO [dbo].[new_table_name]
FROM query;
對於你的情況,你需要使用:
SET @query = N'SELECT Name, ' + @cols + '
INTO [dbo].[new_table_name]
from
(
select Name, Product,
[rn] = ROW_NUMBER() OVER (PARTITION BY Name ORDER BY Product)
from #mytable
) x
pivot
(
max(Product)
for rn in (' + @cols_piv + ')
) p ';
EXEC [dbo].[sp_executesql] @query;
SELECT *
FROM [dbo].[new_table_name];
請記住,如果表格存在,您首先需要DROP
它:
DROP TABLE [dbo].[new_table_name];
與方法的問題是,動態PIVOT可以返回變長列。所以下一次呼叫會有所不同,並且您每次都需要重新創建表格。
如果你想將數據添加到現有的表,你將需要使用...
Insert Into dbo.Table (column1, column2)
SELECT Column1, Column2 FROM query
但是,如果您是在尋找使用臨時表,您將需要...
SELECT * INTO #table FROM query;
有使用臨時表等
不可以,因爲他正在使用Dynamic-SQL,所以不能像您建議的那樣使用臨時表。該表將在新的上下文中並在Dynamic-SQL完成時停止存在。 – lad2025
@ lad2025,現在我看到了另外一個問題 - 我已經更新了這個問題,刪除了* here *部分並將其替換爲問題標題。 – christiandev
你什麼錯誤comprehensive article here?和'dbo.table'存在? – christiandev
嘗試select * from [dbo.table] –