关于数据库:oracle对表的纵横表变换

3次阅读

共计 391 个字符,预计需要花费 1 分钟才能阅读完成。


在咱们平时应用数据库时,常常会发现有的表列数过多,为了提高效率,咱们常常对要查问的表来纵横表变换。

一. 行转列

1.PIVOT 函数

PIVOT(任意聚合函数  FOR  列名  IN(类型))

        其中,【聚合函数】聚合的字段,是须要转化为列值的字段;【列名】是须要转化为列标识的字段,【类型】即是须要的后果展现,【类型】中能够指定别名;IN 中还能够指定子查问。

2、应用 MAX 和 DECODE 函数

3、应用 CASE  WHEN  和  GROUP  BY

二、列转行

1、应用对应的 UNPIVOT 函数

函数阐明:

        UNPIVOT(自定义列名 1【列的值】FOR  自定义列名 2【列名】IN(【列名】))

        其中,【列的值】字段,是将咱们的值字段转为行数据中的【自定义列名 1】;【列名】是将咱们的列题目字段转为行数据中的【自定义列名 2】,【列名】即是转为行的列名。

 2. 用 union all 进行拼接

正文完
 0