Maison  >  Article  >  base de données  >  Comment convertir des lignes en colonnes dans Oracle

Comment convertir des lignes en colonnes dans Oracle

PHPz
PHPzoriginal
2023-04-18 09:06:5422119parcourir

Dans la base de données Oracle, la conversion de lignes est une exigence courante en matière de traitement des données. Il convertit plusieurs valeurs dans une ligne en plusieurs valeurs dans une colonne pour une meilleure présentation et analyse des données.

Par exemple, disons que nous avons le tableau suivant :

ID Nom Score1 Score2 Score3
1 John 80 70 90
2 Lily 90 85 95
3 Tom 60 75 80

Si nous voulons convertir la note de chaque élève en une note distincte ligne, nous pouvons utiliser ligne à colonne pour obtenir les résultats suivants :

1 JohnScore2701JohnScore3902LilyScore190 2LilyScore2 85 2LilyScore3953TomScore1603Tom Score2753 Tom Score380Dans Oracle, il existe plusieurs façons d'implémenter la conversion de lignes, notamment en utilisant UNPIVOT et UNION ALL. Ensuite, nous détaillerons les étapes et la syntaxe de chaque méthode. Tout d'abord, nous devons créer un exemple de table pour préparer les données.
CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
SELECT ID, Name, Subject, Score
FROM score
UNPIVOT (
   Score FOR Subject IN (Score1, Score2, Score3)
);
ID
Utilisez UNPIVOT pour transférer des lignes vers des colonnes UNPIVOT est un mot-clé dans Oracle SQL qui peut déplacer des colonnes en lignes. Utilisez la requête UNPIVOT pour convertir plusieurs colonnes en plusieurs lignes. Pour utiliser UNPIVOT, vous devez d'abord vous assurer que chaque ligne du tableau comporte le même nombre de colonnes et le même type de données. Voici les étapes à suivre pour utiliser UNPIVOT pour convertir des lignes en colonnes : Étape 1 : Créer un exemple de table
Étape 2 : Exécuter la requête UNPIVOT Nous pouvons ensuite transformer les données à l'aide de la requête UNPIVOT suivante : Le résultat de l'exécution est le suivant :

Nom

Sujet

Score

1

John

Score1

80

1JohnScore2701John Score3902Lily Score1902LilyScore2852LilyScore3953 TomScore1603tom
DROP TABLE score;
CREATE TABLE score (
   ID INT,
   Name VARCHAR2(20),
   Score1 INT,
   Score2 INT,
   Score3 INT
);

INSERT INTO score VALUES (1, 'John', 80, 70, 90);
INSERT INTO score VALUES (2, 'Lily', 90, 85, 95);
INSERT INTO score VALUES (3, 'Tom', 60, 75, 80);
COMMIT;
2 Étape 2 : Exécutez la requête union all Ensuite, nous pouvons utiliser l'union all suivante pour interroger les données de conversion : Exécutez les résultats comme suit : name9090
Utiliser UNION ALL implémente la conversion de lignes en colonnes UNION ALL est également une méthode utilisée pour convertir des lignes en colonnes dans Oracle SQL. Les colonnes peuvent être converties en lignes à l'aide d'une requête UNION ALL. Voici les étapes à suivre pour utiliser UNION ALL pour convertir des lignes en colonnes : Étape 1 : Créer un exemple de table Tout d'abord, nous devons créer un exemple de table pour préparer les données.
SELECT ID, Name, 'Score1' Subject, Score1 Score FROM score
UNION ALL
SELECT ID, Name, 'Score2' Subject, Score2 Score FROM score
UNION ALL
SELECT ID, Name, 'Score3' Subject, Score3 Score FROM score
ORDER BY ID, Subject;
id
subject score S core3
2 Lily Score1

2

Lily

Score2

85

2

Lily

Score3

95 2 :
DROP TABLE score;
3 Tom Score1 60
Résumé La conversion de ligne en colonne est une technique de traitement de données courante qui nous permet de mieux afficher et analyser les données. Dans Oracle SQL, nous pouvons utiliser UNPIVOT et UNION ALL pour convertir des lignes en colonnes. En maîtrisant ces concepts et la syntaxe associée, nous pouvons facilement traiter et analyser les données de la base de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn