本文主要是介绍集合、行列转换、层级查询、伪劣,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、集合
1、交集 INTERSECT 两给集合共有的
2、并集 UNION / UNION ALL 两个集合的相加
3、差集 A MINUS B 集合A和集合B相比,A中独有的数据
二、行列转换
(一)、原理
1、行转列 CASE WHEN/DECODE + 聚合函数 + 分组
2、列转行 UNION ALL
(二)、函数
1、行转列 PIVOT(聚合函数(被聚合的列)FOR 行转列的列 IN(列中值...))
2、列转行 UNPIVOT [INCLUDE NULLS](被聚合的列的新列名 FOR 列转行的新列名 IN(字段名...))
INCLUDE NULLS 指定空值也进行转置,如果是EXCLUDE NULLS 将忽略空值。
例子:
对DEMO表中的 NAME列和ID列分别进行行转列得到如下格式
--把demo中的name列行转列
SELECT ID, SUM(DECODE(NAME,'苹果',NUMS,0)) 苹果,SUM(DECODE(NAME,'橘子',NUMS,0)) 橘子,SUM(DECODE(NAME,'葡萄',NUMS,0)) 葡萄,SUM(DECODE(NAME,'芒果',NUMS,0)) 芒果
FROM DEMO
GROUP BY ID
ORDER BY ID;
--把demo中的id列行专列
SELECT NAME, SUM(DECODE(ID,1,NUMS,0)) 一季度,SUM(DECODE(ID,2,NUMS,0)) 二季度,SUM(DECODE(ID,3,NUMS,0)) 三季度,
这篇关于集合、行列转换、层级查询、伪劣的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!