将重复列转换为行 - sql server

时间:2013-12-06 09:31:58

标签: sql sql-server sql-server-2008-r2

我有一个包含100列的表格。每10列后重复一组数据。

我正在尝试使用每组10列的指示符将重复列放入行中。

我目前的表格如下:

ID,C1,C2,C3,C4,C5...C10,C11,C12...C20,C21....C100
R1 ....
R2 .....

我希望它们采用以下格式:

ID,CoLumn_ID,column1,column2,column3,column4,column5,column6,column7,column8,column9,column10

R1,REPORT1,C1,C2,C3,C4,C5,C6,C7,C8,C9,C10
R2,REPORT2,C11,C12,C13,C14,C15,C16,C17,C18,C19,C20
R3,REPORT3,C21.........C30
R4,REPORT3,C31.........C40
R5,REPORT3,C41.........C50
R6,REPORT3,C51.........C60
R7,REPORT3,C61.........C70
R8,REPORT3,C71.........C80
R9,REPORT3,C81.........C90
R10,REPORT3,C91.........C100

请帮忙

1 个答案:

答案 0 :(得分:0)

首先,该表听起来像一个奇怪的设计,所以你的实际问题可能就在那里。

这是一个非常简单的解决方案,可以帮助你。你要做的是选择10列的集合,然后用union all将它们放在彼此的顶部。

select c1, c2, .. , c10 from table
union all
select c11, c12, .. , c20 from table 
union all 
select c21, c22, .. , c30 from table 
etc...
相关问题