Oracle行转列,列转行

select rownum as sortnum,
to_char(t.divisioncode) divisioncode,
to_char(divisionname) divisionname,
to_char(areaname) areaname
from t_area t
where rownum < 10

在这里插入图片描述 原始数据

select sortnum,building_type,result
from (select rownum as sortnum,
to_char(t.divisioncode) divisioncode,
to_char(divisionname) divisionname,
to_char(areaname) areaname
from t_area t
where rownum < 10)
unpivot(result for building_type in(divisioncode,divisionname,areaname))

在这里插入图片描述

SELECT building_type, 一, 二, 三, 四, 五, 六, 七, 八, 九
FROM (select sortnum,building_type,result
from (select rownum as sortnum,
to_char(t.divisioncode) divisioncode,
to_char(divisionname) divisionname,
to_char(areaname) areaname
from t_area t
where rownum < 10)
unpivot(result for building_type in(divisioncode,divisionname,areaname))
) x
PIVOT(max(RESULT)
FOR sortnum IN(‘1’ AS 一, ‘2’ AS 二, ‘3’ AS 三, ‘4’ AS 四, ‘5’ AS 五, ‘6’ AS 六, ‘7’ AS 七, ‘8’ AS 八, ‘9’ AS 九))
ORDER BY building_type;

在这里插入图片描述