Résumé : dans ce tutoriel, vous apprendrez à utiliser la clause Oracle UNPIVOT
pour transposer des colonnes en lignes.
Introduction à la clause Oracle UNPIVOT
La clause Oracle UNPIVOT
vous permet de transposer des colonnes en lignes. La clause UNPIVOT
est opposée à la clause PIVOT
, sauf qu’elle ne désagrège pas les données pendant le processus de transposition.
Le texte suivant illustre la syntaxe de la clause UNPIVOT
d’Oracle:
Dans cette syntaxe:
- La
unpivot_clause
vous permet de spécifier un nom pour une colonne qui représente les valeurs de mesure non pivotées. - Le
unpivot_for_clause
vous permet de spécifier le nom de chaque colonne qui contiendra les valeurs de la mesure. - Le
unpivot_in_clause
contient les colonnes pivotées qui seront dépivotées.
La clause INCLUDE | EXCLUDE NULLS
vous permet d’inclure ou d’exclure les lignes à valeur nulle.
- La clause
INCLUDE NULLS
indique à Oracle d’inclure les lignes à valeur nulle. - La clause
EXCLUDE NULLS
, en revanche, élimine les lignes à valeur nulle du jeu de résultats renvoyé.
Par défaut, l’opération d’unpivot exclut les lignes à valeur nulle.
Prenons quelques exemples d’utilisation de la clause Oracle UNPIVOT
pour mieux comprendre.
Mise en place d’une table échantillon
Premièrement, créez une nouvelle table appelée sale_stats
pour la démonstration:
Deuxièmement, insérez quelques lignes dans la table sale_stats
:
Troisièmement, interrogez les données de la table sale_stats
:
Voici la sortie :
Oracle UNPIVOT exemples
Cette déclaration utilise la clause UNPIVOT
pour faire pivoter les colonnes product_a
, product_b
, et product_c
en lignes :
Dans cet exemple:
Le unpivot_clause
est quantity
qui est une colonne qui représente les valeurs non pivotées des colonnes product_a
, product_b
, et product_c
.
Le unpivot_for_clause
est FOR product_code
, qui est la colonne qui contiendra les valeurs de la mesure.
La clause unpivot_in_clause
est :
qui demande à Oracle de dépivoter les valeurs des colonnes product_a
, product_b
et product_c
.
L’image suivante montre la sortie:
Par défaut, l’opération UNPIVOT
exclut les lignes à valeur nulle, par conséquent, vous ne voyez pas de NULL dans la sortie.
L’exemple suivant utilise la clause UNPIVOT
pour transposer les valeurs des colonnes product_a
, product_b
et product_c
en lignes, mais en incluant les lignes à valeur nulle :
Voici la sortie :
Oracle unpivot multiple columns
Voyons un exemple d’unpivot multiple columns.
Premièrement, déposez et recréez la table sale_stats
:
Deuxièmement, insérez des lignes dans la table sale_stats
:
Troisièmement, interrogez les données de la table sale_stats
:
Enfin, utilisez la clause UNPIVOT
pour transposer les valeurs de la colonne a_qty
, a_value
, b_qty
et b_value
en lignes :
Voici l’ensemble des résultats:
Cette image illustre le processus de transposition:
Dans ce tutoriel, vous avez appris à utiliser la clause Oracle UNPIVOT
pour transposer des colonnes en lignes.
- Ce tutoriel vous a-t-il été utile ?
- OuiNon
.