将多行数据转换为1列

Hea*_*eet 2 sql sql-server

我想从多列中创建一列.我在MSSQL中努力做到这一点.

ID     | Type1  | Type2
0      | Yellow | Blue
1      | Blue   | Yellow
Run Code Online (Sandbox Code Playgroud)

我希望:

ID     | TYPE_ALL | TYPE
0      | Yellow   | Type1
0      | Blue     | Type2
1      | Blue     | Type1
1      | Yellow   | Type2
Run Code Online (Sandbox Code Playgroud)

拜托,你知道怎么做吗?

谢谢.

小智 5

这里可以使用UNPIVOT:

SELECT *
FROM Table
UNPIVOT
(Type_ALL FOR TYPE IN 
  (Type1, Type2)
)AS unpvt;
Run Code Online (Sandbox Code Playgroud)