注:本文使用的数据库表为oracle自带scott用户下的emp,dept等表结构.

                         Oracle学习之路-- 案例分析实现行列转换的几种方式 

                          Oracle学习之路-- 案例分析实现行列转换的几种方式

    通过一个例子来说明行列转换:

需求:查询每个部门中各个职位的总工资

    按我们最原始的思路可能会这么写:

             Oracle学习之路-- 案例分析实现行列转换的几种方式

    这种结果虽然也能满足要求,但是极难阅读,我们使用oracle中的decode()函数进行改写:

       Oracle学习之路-- 案例分析实现行列转换的几种方式

    这样的话就实现了需求要求的功能,其实这就是一种行列转换的方式,这是通过decode()函数实现的,是oracle独有的一个函数,如果使用通用的sql语句,那么该如何实现上面的查询结果呢?当然我们可以通过嵌套子查询来实现,只不过麻烦一点,如下:

      Oracle学习之路-- 案例分析实现行列转换的几种方式

     以上,虽然实现了要求的功能,但我们感觉还是有些复杂,在oracle 11g之后,提供了pivot()函数,专门用来进行行列转换,该函数的使用格式如下:

               Oracle学习之路-- 案例分析实现行列转换的几种方式

    通过此函数编写的代码:

      Oracle学习之路-- 案例分析实现行列转换的几种方式

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-25
  • 2022-12-23
  • 2021-06-23
  • 2021-10-03
  • 2021-12-19
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-06-22
  • 2022-01-05
  • 2022-12-23
  • 2021-11-09
相关资源
相似解决方案