--pivot line transfer column
with temp1 as
(select '浙江' province,'杭州' city ,'1' rank from dual union all
select '浙江' province,'宁波' city ,'2' rank from dual union all
select '浙江' province,'温州' city ,'3' rank from dual union all
select '江苏' province,'苏州' city ,'1' rank from dual union all
select '江苏' province,'无锡' city ,'2' rank from dual union all
select '江苏' province,'常州' city ,'3' rank from dual )
select * from
(select province,city ,rank from temp1)
pivot(max(city) for rank in '1' as "no.1",'2' as "no.2",'3' as "no.3"); (the SELECT 'Jiangsu' province, 'Suzhou' as "no.1", 'Wuxi' as "no.2", 'Changzhou' as "no.3" from dual unionwith temp2 AS
--unpivot column switch
select '浙江' province,'杭州' as "no.1",'宁波' as "no.2",'绍兴' as "no.3" from dual )
select * from
(select province,"no.1","no.2","no.3" from temp2)
unpivot(city for rank in "no.1","no.2","no.3")