读书人

SQL行转列的有关问题

发布时间: 2012-03-22 17:43:57 作者: rapoo

求助:SQL行转列的问题
现有表
TrainerName Session ClassName Date
BenjaminAMCRS TRAINING2012-03-08
BenjaminAMCRS TRAINING2012-03-09
BenjaminAMMicrosoft Exchange Server 2010 2012-03-08
BenjaminAM Microsoft Exchange Server 2010 2012-03-09
需要转换成
TrainerName Session ClassName '2012-03-08' '2012-03-09'
Benjamin AM CRS TRAINING CRS TRAINING CRS TRAINING
Benjamin AM Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010

在线等高手帮忙!谢谢!

[解决办法]

SQL code
create table car(TrainerName varchar(10), Sessionx varchar(5), ClassName varchar(30), Dates date)insert into carselect 'Benjamin', 'AM', 'CRS TRAINING', '2012-03-08' union all  select 'Benjamin', 'AM', 'CRS TRAINING', '2012-03-09' union allselect 'Benjamin', 'AM', 'Microsoft Exchange Server 2010', '2012-03-08' union all  select 'Benjamin', 'AM', 'Microsoft Exchange Server 2010', '2012-03-09'select TrainerName, Sessionx, ClassName0, [2012-03-08], [2012-03-09]from (select TrainerName, Sessionx, ClassName ClassName0, ClassName ClassName1, Dates from car) tpivot(max(ClassName1) for Dates in ([2012-03-08],[2012-03-09])) tTrainerName Sessionx ClassName0                     2012-03-08                     2012-03-09----------- -------- ------------------------------ ------------------------------ ------------------------------Benjamin    AM       CRS TRAINING                   CRS TRAINING                   CRS TRAININGBenjamin    AM       Microsoft Exchange Server 2010 Microsoft Exchange Server 2010 Microsoft Exchange Server 2010(2 row(s) affected) 

读书人网 >SQL Server

热点推荐