首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL行转列的有关问题

2012-03-22 
求助:SQL行转列的问题现有表TrainerNameSessionClassNameDateBenjaminAMCRS TRAINING2012-03-08BenjaminAM

求助: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) 

热点排行