在咱们平时应用数据库时,常常会发现有的表列数过多,为了提高效率,咱们常常对要查问的表来纵横表变换。
一.行转列
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 进行拼接