Oracle UNPIVOT

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.

Oracle UNPIVOT

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 - exemple de table

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:

oracle unpivot - exemple

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 include nulls example

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:

oracle unpivot multiple columns example

Cette image illustre le processus de transposition:

Oracle unpivot multiple columns

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

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.