Maison> base de données> Oracle> le corps du texte

Comment convertir des lignes en colonnes dans Oracle

PHPz
Libérer: 2023-04-18 09:44:26
original
22093 Les gens l'ont consulté

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 :

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;
Copier après la connexion
Copier après la connexion
SELECT ID, Name, Subject, Score FROM score UNPIVOT ( Score FOR Subject IN (Score1, Score2, Score3) );
Copier après la connexion
1 John Score2 70 1 John Score3 90 2 Lily Score1 90 2 Lily Score2 85 2 Lily Score3 95 3 Tom Score1 60 3 Tom Score2 75 3 Tom Score3 80 Dans 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. 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

DROP TABLE score;
Copier après la connexion
Copier après la connexion
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;
Copier après la connexion
Copier après la connexion
1 John Score2 70 1 John Score3 90 2 Lily Score1 90 2 Lily Score2 85 2 Lily Score3 95 3 Tom Score1 60 3 tom 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 : name 90 90
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;
Copier après la connexion
id
subject score S core3
2 Lily Score1

2

Lily

Score2

85

2

Lily

Score3

95
DROP TABLE score;
Copier après la connexion
Copier après la connexion
2 :
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!

source:php.cn
Déclaration de ce site Web
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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!