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

 时间:2024-10-14 05:53:20

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

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

2、说明一下这个表的结构,日期、统计代码、统计荏半吨蛸名称、数量。看到这里相信大家已经明白这个例子已经非常典型了。首先以行的形式插入数据。因为按这个库表的结构大家应用清楚是行的形式存储了,也就是按日期和统计名称来展示这个名称的数量。插入数据

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

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

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

4、查询结果如下

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

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

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

6、Ok,写到这里,我们来看一下上图写法的查询结果,如下可以看到和上面的方法的结果是一样的。

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

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

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

8、上图中偷个懒,我把画红框的地方作为列的表,也就是上面例子中的查询语句。我将画红框的表的查询结果当做一个表(列的形式),现在转换成行的形式如下:

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

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

  • 绕过联通的端口封禁。
  • 基础会计第一堂课怎么上
  • 我的世界如何做简单造景
  • Chrome怎样将标签页添加到阅读清单
  • 爱奇艺怎么进入到奇秀页面
  • 热门搜索
    关于爱国的手抄报 我爱祖国手抄报 防溺水手抄报大全图片 劳动节手抄报 经典诵读手抄报 植树节手抄报简单好看 关于环保的手抄报 阅读手抄报简单又漂亮 手抄报版面设计图 关于消防安全的手抄报