22,210
社区成员
发帖
与我相关
我的任务
分享
Create table T(id int,yj int)
insert into T select 5234, 5
insert into T select 5234, 9
insert into T select 5234, 4
insert into T select 5236, 1
insert into T select 5236, 8
GO
Select sortid = row_number() over(partition by id order by getdate()),*
into #T
from T
order by id
declare @sql varchar(max)
set @sql=''
select @sql=@sql+',max(case when sortid='+rtrim(sortid)+' then rtrim(yj) else '''' end) as [YJ'+rtrim(sortid)+']'
from #T
group by rtrim(sortid)
select @sql='select id'+@sql+' from #T group by id'
exec(@sql)
/**
id YJ1 YJ2 YJ3
----------- ------------ ------------ ------------
5234 5 9 4
5236 1 8
**/
Drop table #T
Drop table T