读书人

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

发布时间: 2013-03-16 11:51:46 作者: rapoo

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

读书人网 >SQL Server

热点推荐