现有数据如下:
姓名 类别
A 西瓜
A 黄瓜
A 南瓜
A 冬瓜
... ...可能很多种瓜现在行转列的结果已经可以做出来
结果如下:姓名 类别1 类别2 类别3 类别4 ...
A 西瓜 黄瓜 南瓜 冬瓜 ...现要求结果如下
姓名 类别
A 西瓜,黄瓜,南瓜,冬瓜...
这样的语句怎么实现
姓名 类别
A 西瓜
A 黄瓜
A 南瓜
A 冬瓜
... ...可能很多种瓜现在行转列的结果已经可以做出来
结果如下:姓名 类别1 类别2 类别3 类别4 ...
A 西瓜 黄瓜 南瓜 冬瓜 ...现要求结果如下
姓名 类别
A 西瓜,黄瓜,南瓜,冬瓜...
这样的语句怎么实现
类别=stuff((select ','+类别
from tb
where 姓名=t.姓名
for xml path('')),1,1,'')
from tb t
group by 姓名
drop table tb
Go
Create table tb([姓名] nvarchar(1),[类别] nvarchar(2))
Insert tb
select N'A',N'西瓜' union all
select N'A',N'黄瓜' union all
select N'A',N'南瓜' union all
select N'A',N'冬瓜'
Go
select 姓名,
类别=stuff((select ','+类别
from tb
where 姓名=t.姓名
for xml path('')),1,1,'')
from tb t
group by 姓名
/*
姓名 类别
---- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
A 西瓜,黄瓜,南瓜,冬瓜(1 個資料列受到影響)*/