J'ai une table dans le format ci-dessous:Utilisez Pivot fonction pour fusionner des ensembles de colonnes dans Oracle
id colA1 colB1 colA2 colB2
1 100 499 500 999
J'ai besoin dans le format ci-dessous,
id colA colB
1 100 499
1 500 999
J'ai essayé en utilisant la méthode unpivot
, mais il donne comme ci-dessous,
colA colB
100 499
100 999
500 499
500 999
requête utilisée
select * from (select colA, colB from my_table
unpivot
(colA for ColNm1 in(
colA1,
colA2
))
unpivot
(colB for ColNm2 in(
colB1,
colB2
));
J'étais capable de le faire en utilisant union, mais je veux qu'il soit mis en œuvre en utilisant la méthode unpivot. –
... et pour une bonne raison: je crois que UNION ALL signifiera que la table de base est lue deux fois, tandis que UNPIVOT la lit une seule fois. – mathguy
@mathguy Unpivot a une meilleure performance lors de l'exécution. –