Oracle如何进行行转列和列转行

2024-10-14 05:53:20

1、为了大家清楚,首先我重头开始,来建立库表,并一步一步的进行说明和演示,首先建表如下例子:

Oracle如何进行行转列和列转行

3、从上图可以看到,我按日期、统计名称顺序排序,首先展示的是18年的1月13号的各个名称的数量,然后再展示其他日期的各个名称的数匪犬挚驰量,这是典型的行展示,那么,如果我想把各个名称展示成列的形式展示,也就是说18年1月13号的我只展示一行,每一列展示各个统计名称的数量,那么该如何做呢?相信大家都会想到子查询 如下:

Oracle如何进行行转列和列转行

5、从上图可以看到现在都变成了列的形式,这就说明以上的子查询转换成了列的形式,这种方式比较麻烦,当然我们还用其他办法,这里不再过多描述。现在只介绍一种,在oracle11版本已经支持了如下 函数的写法,如下:

Oracle如何进行行转列和列转行

7、下面再来看列转行,下面就上述的列再转回去。那么如何转呢?首先想到的第一种方法就是使用union。查询多个列的union的集合就形成了行。那么再来介绍oracle11是如何处理的

Oracle如何进行行转列和列转行

9、由此可以看到,和最初建表的结果是一样的。这就是oracle11的简单之处。

猜你喜欢