将每个 ID 的列转换为行 [英] Convert columns into rows for each ID
本文介绍了将每个 ID 的列转换为行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一张如下所示的表格
I have a table that looks as follows
ID | value1 | value2 | value3
1 | 5 | 6 | 7
2 | 10 | 11 | 12
3 | 20 | 21 | 22
我需要为每个 ID
的 3 个值列中的每一个创建一行.最终表格应如下所示(列标题不再有意义,但您可以忽略这一点):
I need to create one row for each of the 3 value columns per ID
. The final table should look like this (the column headers dont make sense anymore, but you can ignore this):
ID | value1 | value2
1 | value1 | 5
1 | value2 | 6
1 | value3 | 7
2 | value1 | 10
2 | value2 | 11
2 | value3 | 12
3 | value1 | 20
3 | value2 | 21
3 | value3 | 22
在 TSQL 中解决此问题的最佳方法是什么?
What would be the best way to approach this in TSQL?
推荐答案
你需要反透视数据你可以使用CROSS APPLY
Select Id,cs.name,cs.values_list from yourtable
cross apply (values ('value1',value1),
('value2',value2),
('value3',value3)) Cs (name,values_list)
这篇关于将每个 ID 的列转换为行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文