读书人

行转列?该怎么解决

发布时间: 2013-01-04 10:04:18 作者: rapoo

行转列?
表A
a b
-------------
aa1
aa2
aa3
aa4
aa5
aa6
bb1
bb2
bb3
bb4
bb5
bb6

得到结果:
a b
-------------
a a1,a2,a3,a4,a5,a6
b b1,b2,b3,b4,b5,b6

语句实现,谢谢!

[解决办法]

USE test
GO



--if object_id('表A') is not null
--drop table [表A]
--Go
--Create table [表A]([a] nvarchar(1),[b] nvarchar(2))
--Insert into [表A]
--Select N'a',N'a1'
--Union all Select N'a',N'a2'
--Union all Select N'a',N'a3'
--Union all Select N'a',N'a4'
--Union all Select N'a',N'a5'
--Union all Select N'a',N'a6'
--Union all Select N'b',N'b1'
--Union all Select N'b',N'b2'
--Union all Select N'b',N'b3'
--Union all Select N'b',N'b4'
--Union all Select N'b',N'b5'
--Union all Select N'b',N'b6'


select a,stuff((select ','+b from 表A where a=a.a order by b for xml path('')),1,1,'') as b
from 表A as a
group by a

/*
a b
---- ------------------
a a1,a2,a3,a4,a5,a6
b b1,b2,b3,b4,b5,b6
*/

读书人网 >SQL Server

热点推荐