Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 是否有方法将行值从3连接到3?_Sql_Sql Server_Tsql_Sql Server 2017 - Fatal编程技术网

Sql 是否有方法将行值从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

正如我在标题中提到的,我需要从前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 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
结果:


我非常感谢安德里亚!!这是我工作的一项任务,好几天都让我发疯。你真是个天才!!!。