【正确答案】行列转换包括以下6种情况:①列转行。②行转列。③多列转换成字符串。④多行转换成字符串。⑤字符串转换成多列。⑥字符串转换成多行。其中,重点是行转列和字符串转换成多行。下面将对这几种情况做简要说明,详细转换过程请参考随书pdf文档。
(1)列转行 列转行就是将原表中的列名作为转换后的表的内容。列转行主要采用UNION ALL来完成。
(2)行转列 行转列就是将行数据内容作为列名。主要采用MAX和DECODE函数来完成。
(3)多列转换成字符串 使用||或CONCAT函数实现。

(4)多行转换成字符串 可以采用SYS_CONNECT_BY_PATH来完成。
(5)字符串转换成多列 实际上就是一个字符串拆分的问题。主要采用SUBSTR和INSTR来完成。
(6)字符串转换成多行 主要采用UNION ALL、SUBSTR和INSTR来完成,对于其他类型的转换请参考随书pdf文档。还有几类特殊的转换如下:

结果:

若是字符串类型,则如下:

结果:
