日期:2014-05-16 浏览次数:20381 次
用户表 用户数不固定
ID Name
1 lily
2 lucy
3 jim
...
有多少个用户就有多少列,如下
列名 用户1 用户2 用户3
ID 1 2 3
Name lily lucy jim
就是拼接sql,拼接成行列转换的语句。
--> 测试数据: [ta]
if object_id('[ta]') is not null
drop table [ta]
create table [ta] ([ID] int,[Name] varchar(4))
insert into [ta]
select 1,'lily' union all
select 2,'lucy' union all
select 3,'jim'
declare @s varchar(8000)
set @s='select 列名=''ID'''
select @s=@s+',max(case when id='+cast(ID as varchar(5))+' then cast(id as varchar(10)) else null end)'
from ta
set @s=@s+'from ta union '
set @s=@s+'select 列名=''Name'''
select @s=@s+',max(case when id='+cast(ID as varchar(5))+' then name else null end)'
from ta
set @s=@s+'from ta '
exec(@s)
ID 1 2 3
Name lily lucy jim