SQLserver 多行转一行显示
前言
在SQLserver
如何把多行的数据,在一行中显示呢?
具体实现
将使用for xml path
方法来进行转换。
创建表格
脚本代码如下:
create table table1
(
Id int primary key identity(1,1),
[Name] varchar(50)
)
insert into table1 ([Name]) values ('张三')
insert into table1 ([Name]) values ('李四')
insert into table1 ([Name]) values ('王五')
insert into table1 ([Name]) values ('小芳')
insert into table1 ([Name]) values ('橙子')
使用for xml path
进行转换
脚本代码如下:
select distinct [Name]=stuff((
select ','+[Name] from table1 b
where a.Id=a.Id
for xml path('')
),1,1,'')
from table1 a
结果
转换之前,如下图所示:
转换之后,如下图所示: