1
我知道如何動態透視顯示,例如,here。非聚合的動態數據透視
動態支點在我的情況,可能無法正常工作,其中#source可以包含動態列和動態列的值,它具有如下指示擺動:
IF OBJECT_ID('tempdb..#Source') IS NOT NULL DROP TABLE #Source
IF OBJECT_ID('tempdb..#Aim') IS NOT NULL DROP TABLE #Aim
CREATE TABLE #Source
(
ColumnName NVARCHAR(10),
ColumnValue NVARCHAR(10),
Id INT
)
CREATE TABLE #Aim
(
Id INT,
Column1 NVARCHAR(10),
Column2 NVARCHAR(10),
Column3 NVARCHAR(10)
)
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column1', 'Value1', 1);
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column2', 'Value1', 1);
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column1', 'Value2', 2);
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column1', 'Value4', 3);
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column3', 'Value1', 3);
INSERT INTO #Source (ColumnName, ColumnValue, Id) VALUES ('Column3', 'Value3', 4);
SELECT * FROM #Source
INSERT INTO #Aim (Id, Column1, Column2, Column3) VALUES (1, 'Value1', 'Value1', NULL)
INSERT INTO #Aim (Id, Column1, Column2, Column3) VALUES (2, 'Value2', NULL, NULL)
INSERT INTO #Aim (Id, Column1, Column2, Column3) VALUES (3, 'Value4', NULL, 'Value1')
INSERT INTO #Aim (Id, Column1, Column2, Column3) VALUES (4, NULL, NULL, 'Value3')
SELECT * FROM #Aim
我想達到的輸出#Aim的最後選擇語句。我希望這是自我解釋。這可能嗎?
https://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/
哇感謝。我試圖使用max,但沒有得到它的工作。謝謝! – cs0815
我已經添加了一個後續問題:http://stackoverflow.com/questions/35803654/add-dynamic-placeholder-columns-to-dynamically-pivoted-data - 任何輸入將非常讚賞。 – cs0815
@csetzkorn - 增加了解決方案 –