sql行转列
create table a
(
country varchar(20),
state varchar(10),
cout int
)
insert into a values('中国','A',100);
insert into a values('中国','B',400);
insert into a values('中国','C',300);
insert into a values('中国','D',600);
insert into a values('美国','A',545);
insert into a values('美国','B',130);
insert into a values('美国','C',120);
insert into a values('美国','D',150);
select * from a;
--
-- 查询的结果象这样:
-- 国家 A B C D
-- 中国 100 400 300 600
-- 美国 545 130 120 150
select 国家=country,
'A' =
sum(
case
when state = 'A' then cout
else 0
end
),
'B' =
sum(
case
when state = 'B' then cout
else 0
end
),
'C' =
sum(
case
when state = 'C' then cout
else 0
end
),
'D' =
sum(
case
when state = 'D' then cout
else 0
end
)
from a
group by country
order by 1 desc
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步