sql—有没有方法将行值从3连接到3?

bfnvny8b  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(311)

正如我在标题中提到的,我需要从前3行中获取值,然后从后3行中获取值,并将它们连成行。
例子
输入:

column  
-------
Mu1
Mu2
Mu3
Mu4
Mu5
Mu6
Mu7
Mu8
Mu9

输出:

Column
------------
Mu1,Mu2,Mu3
Mu4,Mu5,Mu6 
Mu7,Mu8,Mu9

非常感谢你,如果我用错误的方式发布了一些东西,我很抱歉,这是我在这里的第一个问题。

pzfprimi

pzfprimi1#

可以使用窗口函数( row_number )在cte中为每一行分配一个行号。
然后你可以用 group bystring_agg 要一次连接3行值,请执行以下操作:

declare @t table (col varchar(5))
insert into @t
values
('Mu1'),
('Mu2'),
('Mu3'),
('Mu4'),
('Mu5'),
('Mu6'),
('Mu7'),
('Mu8'),
('Mu9')

;with grp as 
(
   select col,
     rn = row_number() over (order by col)
   from @t
)
select 
    string_agg(col, ',') as [Column]
from grp
group by (rn -1)/ 3

结果:

相关问题