2016-11-15 82 views
0

我有一個表名table1的SQL轉置樞軸? UNPIVOT?

Partnumber | Model  
12345  | A1  
12345  | B2  
12345  | C3 

,我想我的輸出是:

Partnumber | Model1 | Model2 | Model3  
12345  | A1  | B2  | C3 

隨着模型中的列N是動態的。

任何想法?

+0

..... – scsimon

回答

1

您可以使用動態條件彙總:數百個這樣的例子對SO

DECLARE @sql NVARCHAR(MAX) = N''; 

SELECT @sql = 
'SELECT 
    PartNumber' + CHAR(10) + 
    STUFF((
     SELECT DISTINCT 
      ' ,MAX(CASE WHEN Model = ''' + Model + ''' THEN Model END) AS ' + QUOTENAME(Model) + CHAR(10) 
     FROM Tbl 
     FOR XML PATH('') 
    ), 1, 0, '') + 
'FROM Tbl 
GROUP BY PartNumber;'; 

PRINT @sql; 
EXEC sp_executesql @sql;