Oracle pivot & unpivot
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,pivot & unpivot 11g新特性1 pivot以列-值对的形式出现,典型的行转列报表函数。create table test_demo(id int,name varchar(20),nu
千家信息网最后更新 2025年11月07日Oracle pivot & unpivot
pivot & unpivot 11g新特性
1 pivot
以列-值对的形式出现,典型的行转列报表函数。
create table test_demo(id int,name varchar(20),nums int); ---- 创建表insert into test_demo values(1, '苹果', 1000);insert into test_demo values(2, '苹果', 2000);insert into test_demo values(3, '苹果', 4000);insert into test_demo values(4, '橘子', 5000);insert into test_demo values(5, '橘子', 3000);insert into test_demo values(6, '葡萄', 3500);insert into test_demo values(7, '芒果', 4200);insert into test_demo values(8, '芒果', 5500);commit; select name, sum(nums) from test_demo group by name; select * from (select name, nums fromtest_demo)pivot(sum(nums) for name in('苹果', '橘子', '葡萄', '芒果')); SQL> select * 2 from (select name, nums from test_demo) 3 pivot(sum(nums) 4 for name in('苹果' as "苹果", '橘子', '葡萄', '芒果')); --别名使用 苹果 '橘子' '葡萄' '芒果'---------- ---------- ---------- ---------- 7000 8000 3500 9700这里再说语法:
pivot聚合函数 for 列名 in 类型 ,其中 in 中可以指定别名,in中还可以指定子查询,比如 select distinct code from customers
2 unpivot
典型的列转行报表函数
create table Fruit(id int,name varchar(20), Q1 int, Q2 int, Q3 int,Q4 int);这里Q1 int, Q2int, Q3 int, Q4 int表示四季度。insert into Fruit values(1,'苹果',1000,2000,3300,5000);insert into Fruit values(2,'橘子',3000,3000,3200,1500);insert into Fruit values(3,'香蕉',2500,3500,2200,2500);insert into Fruit values(4,'葡萄',1500,2500,1200,3500);commit;select * from Fruit; select id , name, quarter, sell from Fruit unpivot (sell for quarterin (q1, q2, q3, q4));
注意:unpivot没有聚合函数,quarter、sell字段也是临时的变量。
这里sell是统计值,quarter表示季度及类型。
执行结果:
SQL> select id , name, quarter, sell from Fruit unpivot (sell forquarter in (q1, q2, q3, q4)); ID NAME QUARTER SELL--------------------------------------- -------------------- ---------------------------------------------- 1 苹果 Q1 1000 1 苹果 Q2 2000 1 苹果 Q3 3300 1 苹果 Q4 5000 2 橘子 Q1 3000 2 橘子 Q2 3000 2 橘子 Q3 3200 2 橘子 Q4 1500 3 香蕉 Q1 2500 3 香蕉 Q2 3500 3 香蕉 Q3 2200 3 香蕉 Q4 2500 4 葡萄 Q1 1500 4 葡萄 Q2 2500 4 葡萄 Q3 1200 4 葡萄 Q4 3500
苹果
橘子
葡萄
芒果
香蕉
函数
典型
别名
报表
类型
变量
四季
字段
季度
定子
形式
特性
结果
语法
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
未来军人网络安全战争
电商软件开发编程
诛仙3哪个服务器好
附加数据库找不到文件
工程验算软件开发语言
多大的数据库需要优化
软件开发人员有哪些岗位
天津软件开发待遇怎么样
软件开发公司合并
软件开发月薪过2w了么
部队网络安全教育内容
智慧城市网络安全政策法规
雷蛇服务器
服务器高负载
软件开发公司组织架构图
面向对象的数据库应用
数据库应用最小值函数字符串
山东微信公众号软件开发外包公司
网络安全维护和网络运营累吗
具备三年以上软件开发经验
网络安全法是哪一年公布的
新浪微博图片服务器一直出现问题
数据库在哪添加字段
数据库识别设置中文的命令
求数据库中两列时间差
软件开发是不是都是男的
网络安全培训机构排名榜前
银行软件开发工资有多少
万方数据库2020年营业情况
手机网络安全防护怎么关