create table test01(id int,name varchar(20),quarter int,profile int) insert into test01 values(1,'a',1,1000) insert into test01 values(1,'a',2,2000) insert into test01 values(1,'a',3,4000) insert into test01 values(1,'a',4,5000) insert into test01 values(2,'b',1,3000) insert into test01 values(2,'b',2,3500) insert into test01 values(2,'b',3,4200) insert into test01 values(2,'b',4,5500) select * from test01 --行转列 select id,name, [1] as "一季度", [2] as "二季度", [3] as "三季度", [4] as "四季度", [5] as "5" from test01 pivot ( sum(profile) for quarter in ([1],[2],[3],[4],[5]) ) as pvt create table test02(id int,name varchar(20), Q1 int, Q2 int, Q3 int, Q4 int) insert into test02 values(1,'a',1000,2000,4000,5000) insert into test02 values(2,'b',3000,3500,4200,5500) select * from test02 --列转行 select id,name,quarter,profile from test02 unpivot ( profile for quarter in ([Q1],[Q2],[Q3],[Q4]) ) as unpvt