SQL行列转换

那年仲夏 提交于 2020-03-06 07:16:30


create table A1
(
 A1_id varchar(10),
 A1_name varchar(10)
);
insert into a1 values('A','1');
insert into a1 values('B','1');
insert into a1 values('C','2');
insert into a1 values('D','3');

select * from a1


-- 方法1
select A1_id + '' from a1   
for XML Path('') as tlist from a1

select A1_name,
(SELECT A1_id+'' FROM a1
  WHERE A1_name=A.A1_name
  FOR XML PATH('')) AS StuList
FROM a1 A
GROUP BY A1_name



--方法2

declare @sql varchar(8000),@sql2 varchar(1000)

select @sql=isnull(@sql+',','')+A1_id from a1 group by A1_id           

set @sql='select * from a1 pivot (max(A1_id) for A1_id in ('+@sql+'))a'

exec(@sql)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!