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

Sql 怎的将多列转换成一行多列

2013-03-16 
Sql 怎样将多列转换成一行多列sql数据表 tb 如下FIDCerNameStarTimeEndTime53社保2000-01-012003-01-0153

Sql 怎样将多列转换成一行多列

sql数据表 tb 如下

FID      CerName   StarTime     EndTime
53       社保      2000-01-01   2003-01-01
53       银行      2000-02-01   2002-02-01

怎样转换成

FID    社保开始时间  社保结束时间  银行开始时间    银行结束时间
53      2000-01-01   2003-01-0     2000-02-01      2002-02-01


请假下各位:这样怎样进行转换成?
[解决办法]

引用:
但是想做动态的,该怎样处理呢?

declare @sql nvarchar(max)
select @sql=isnull(@sql,'')+',max(case when CerName='''+CerName+''' then starttime else null end)['+CerName+'开始时间],max(case when CerName='''+CerName+''' then EndTime else null end)['+CerName+'结束时间]' from (select distinct CerName from tb)t
exec('select fid'+@sql+' from tb group by fid')

热点排行