oracle column switch and turn rows columns

--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")

Published 25 original articles · won praise 1 · views 10000 +

Guess you like

Origin blog.csdn.net/kimi_Christmas/article/details/90025342