orcal中长表进行行转列

有一张长表,需要对其中的2列,编码及名称进行行转列,有主键,编码和名称有很多,case when判断也不太现实,有没有什么好的办法

oracle的pivot行转列

样例:
SELECT *
FROM (SELECT A.PRODUCT_NAME
           , TO_CHAR(A.SELL_TIME,‘mm‘) AS mon
           , A.SELL_COUNT 
      FROM PRODUCT A 
      WHERE TO_CHAR(A.SELL_TIME,‘yyyy‘) = ‘2018‘)
PIVOT(SUM(SELL_COUNT)
FOR MON IN(‘01‘M1,502‘M2,603‘M3,704‘M4,805‘M5,906‘M6,1007‘M7,1108‘M8,1209‘M9,1310‘M10,1411‘M11,1512‘ M12));