Oracle怎么把行变成列?

查出来的数据是这样的,有办法让数据变成下面的格式吗?还是得在后端代码处理
图片描述

阅读 2.7k
2 个回答

如果name的值范围是固定的话,可以使用下面的语句:
select city, sum(cnt_1), sum(cnt_2), sum(cnt_3)
from (

select
  city, 
  decode(name, '燕麦', total, 0) as cnt_1,
  decode(name, '稻谷', total, 0) as cnt_2,
  decode(name, '玉米', total, 0) as cnt_3
from t

)
group by city

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进