sql - Oracle Pivot - 分配不带引号的列名
问题描述
我有一个查询:
select * from (
select
ab_id, abc_metric, abc_value from TABLE1)
PIVOT(
min(abc_value)
FOR abc_metric IN ('Catalog','Fruit Type')); -- I have 50 such columns
这会产生一个表格:
ab_id 'Catalog' 'Fruit Type'
1 a b
2 c d
我想要带有不带引号的列并用分隔的表格_
ab_id catalog fruit_type
1 a b
2 c d
有没有办法做到这一点?
解决方案
只需使用条件聚合:
select ab_id,
max(case when abc_metric = 'Catalog' then abc_value end) as catalog,
max(case when abc_metric = 'Fruit Type' then abc_value end) as fruit_type
from TABLE1
group by ab_id
推荐阅读
- javascript - express-validator isAfter 总是假的
- c# - 如何将安装程序单选按钮对话框中的输入用作文件系统 DefaultLocation 的一部分的变量
- python - 有没有办法错开或躲避多个 matplotlib.plot 误差线?
- java - Android File.listFiles() 返回 null
- python - 我只能在python中将某些变量设置为true时记录吗?
- c++ - 我的代码无法将输入验证为整数
- javascript - 如何在JS中存储链接并通过html动态打开?
- ios - 观察者类没有收到通知
- sql-server - SQL Server、LIKE 与 RTRIM 性能
- php - 在登陆 URL 中通过修剪 PHP $_GET 获取哈希