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')