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;
SELECT ID, Name, Subject, Score FROM score UNPIVOT ( Score FOR Subject IN (Score1, Score2, Score3) );
John | Score2 | 70 | |
---|---|---|---|
Score3 | 90 | 2 | |
Score1 | 90 | 2 | |
Score2 | 85 | 2 | |
Score3 | 95 | 3 | |
Score1 | 60 | 3 | |
Score2 | 75 | 3 | |
Score3 | 80 | ||
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;
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;
John | Score2 | 70 | |
---|---|---|---|
Score3 | 90 | 2 | |
Score1 | 90 | 2 | |
Score2 | 85 | 2 | |
Score3 | 95 | 3 | |
Score1 | 60 | 3 | |
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. | 2 Étape 2 : Exécutez la requête union all
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
| Exécutez les résultats comme suit :
id | ||
subject | score | S core3 | |
2 | Lily | Score1 |
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!