2016-12-22 28 views
2

我想從多列中製作1列。我努力在MSSQL中做到這一點。將來自多行的數據轉換爲1列

ID  | Type1 | Type2 
0  | Yellow | Blue 
1  | Blue | Yellow 

我想有:

ID  | TYPE_ALL | TYPE 
0  | Yellow | Type1 
0  | Blue  | Type2 
1  | Blue  | Type1 
1  | Yellow | Type2 

請,你知道該怎麼辦呢?

謝謝。

回答

5

的UNPIVOT這裏可以使用:

SELECT * 
FROM Table 
UNPIVOT 
(Type_ALL FOR TYPE IN 
    (Type1, Type2) 
)AS unpvt; 
+0

太好了!謝謝。我需要了解更多關於pivot和unpivot的知識,它們看起來非常有用。多謝!我不是多列聯盟的忠實粉絲:D – HeadOverFeet

+0

好的...... JM。 –

3
SELECT ID, Type1 AS TYPE_ALL, 'Type1' AS [TYPE] FROM YourTable 
UNION ALL 
SELECT ID, Type2 AS TYPE_ALL, 'Type2' AS [TYPE] FROM YourTable 
3

如果你不想做一個UNPIVOT,您可以改用一個UNION查詢:

SELECT ID, 
     Type1 AS TYPE_ALL, 
     'Type1' AS TYPE 
FROM yourTable 
UNION ALL 
SELECT ID, 
     Type2, 
     'Type2' 
FROM yourTable 
ORDER BY ID