在SQL Server中将一个列中的数据拆分成多行

4
我是一名SQL初学者,很遗憾我无法解决一个问题。我有一个系统表中的列名列表,希望根据列名的序列将它们插入到单独的行中。
原始表:
目标表:
由于原始表有大量行,因此将数字分组相当具有挑战性。我已经研究了PIVOT函数,但它并不能解决这个问题。
很遗憾,由于我是初学者,我也无法开始编写代码。任何建议我应该查看哪些函数,以便我可以开始编写一些代码将会非常有帮助。任何指向解决方案的指针也会受到高度赞赏 。
1个回答

6

条件聚合可以满足你的需求:

select max(case when seqnum = 1 then column end),
       max(case when seqnum = 2 then column end),
       max(case when seqnum = 3 then column end),
       max(case when seqnum = 4 then column end)
from (select t.*,
             row_number() over (partition by left(column, 3) order by column) as seqnum
      from t
     ) t
group by left(column, 3)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接