Sql 是否有方法将行值从3连接到3?
正如我在标题中提到的,我需要从前3行、后3行以及其他行中获取值,并将它们连成行 示例 输入:Sql 是否有方法将行值从3连接到3?,sql,sql-server,tsql,sql-server-2017,Sql,Sql Server,Tsql,Sql Server 2017,正如我在标题中提到的,我需要从前3行、后3行以及其他行中获取值,并将它们连成行 示例 输入: column ------- Mu1 Mu2 Mu3 Mu4 Mu5 Mu6 Mu7 Mu8 Mu9 输出: Column ------------ Mu1,Mu2,Mu3 Mu4,Mu5,Mu6 Mu7,Mu8,Mu9 非常感谢,如果我以错误的方式发布了一些内容,我很抱歉,这是我在这里的第一个问题。您可以使用CTE内的窗口功能(行号)为您的每一行分配行号 然后,您可以使用带有string\u
column
-------
Mu1
Mu2
Mu3
Mu4
Mu5
Mu6
Mu7
Mu8
Mu9
输出:
Column
------------
Mu1,Mu2,Mu3
Mu4,Mu5,Mu6
Mu7,Mu8,Mu9
非常感谢,如果我以错误的方式发布了一些内容,我很抱歉,这是我在这里的第一个问题。您可以使用CTE内的窗口功能(
行号
)为您的每一行分配行号
然后,您可以使用带有string\u agg
的groupby
将值一次连接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
结果:
我非常感谢安德里亚!!这是我工作的一项任务,好几天都让我发疯。你真是个天才!!!。