SQL行转列

declare @Testtable table(FType varchar(100),FName varchar(100))


insert @Testtable select '学历','博士'
insert @Testtable select '学历','学士'
insert @Testtable select '学历','硕士'

insert @Testtable select '证件类型','军官证'
insert @Testtable select '证件类型','身份证'
insert @Testtable select '证件类型','其他'

select * from @Testtable

得到的结果如下: 

 

如果我们想把所有FType为‘学历’的 FName 放一行,FType为‘证件类型’的 FName 放一行

可以试一下这样写:

select t2.FType,left(FName,len(FName)-1) FName from
(
select FType ,
(select FName+',' from @Testtable where FType=t1.FType for xml path('')) FName
from @Testtable t1
group by FType
) t2

得到的结果如下: 

 

posted on 2009-12-08 21:05  tigerhuolh  阅读(136)  评论(0编辑  收藏  举报

导航