Heim >Datenbank >Oracle >So konvertieren Sie Zeilen in Spalten in Oracle

So konvertieren Sie Zeilen in Spalten in Oracle

PHPz
PHPzOriginal
2023-04-18 09:06:5422272Durchsuche

In Oracle-Datenbanken ist die Zeilenkonvertierung eine häufige Datenverarbeitungsanforderung. Es wandelt mehrere Werte in einer Zeile in mehrere Werte in einer Spalte um, um die Daten besser darzustellen und zu analysieren.

Nehmen wir zum Beispiel an, wir haben die folgende Tabelle:

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

Wenn wir die Note jedes Schülers in eine separate umwandeln möchten Zeile können wir Zeile für Spalte verwenden, um die folgenden Ergebnisse zu erzielen:

. Tom Score2753 Tom Score380Verwenden Sie UNPIVOT, um Zeilen in Spalten zu übertragen
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;
Schritt 2: UNPIVOT-Abfrage ausführen
SELECT ID, Name, Subject, Score
FROM score
UNPIVOT (
   Score FOR Subject IN (Score1, Score2, Score3)
);
IDName
ID Name Subject Score
1 John Score1 80
1 John Score2 70
1 John Score3 90
2 Lily Score1 90
2 Lily Score2 85
In Oracle gibt es mehrere Möglichkeiten, die Zeilenkonvertierung zu implementieren, einschließlich der Verwendung von UNPIVOT und UNION ALL. Als Nächstes werden wir die Schritte und die Syntax jeder Methode detailliert beschreiben.
UNPIVOT ist ein Schlüsselwort in Oracle SQL, das Spalten in Zeilen verschieben kann. Verwenden Sie die UNPIVOT-Abfrage, um mehrere Spalten in mehrere Zeilen zu konvertieren. Um UNPIVOT zu verwenden, müssen Sie zunächst sicherstellen, dass jede Zeile in der Tabelle die gleiche Anzahl an Spalten und den gleichen Datentyp hat. Im Folgenden sind die Schritte aufgeführt, um UNPIVOT zum Konvertieren von Zeilen in Spalten zu verwenden: Schritt 1: Erstellen Sie eine Beispieltabelle Zuerst müssen wir eine Beispieltabelle erstellen, um die Daten vorzubereiten.
Wir können die Daten dann mit der folgenden UNPIVOT-Abfrage transformieren: Das laufende Ergebnis lautet wie folgt:

Betreff

Score

1

John

Score1

80

1JohnScore2701John Score3902Lily Score1902LilyScore2852LilyScore3953 TomScore1603tom
DROP TABLE score;
Verwenden Sie UNION ALL, um die Zeilenkonvertierung in eine Spalte zu implementieren.
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 Schritt 2: Führen Sie die Union-All-Abfrage aus Dann können wir die folgende Union-All-Abfrage verwenden, um die Konvertierungsdaten abzufragen:
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;
Führen Sie die Ergebnisse wie folgt aus: Betreff
UNION ALL ist auch eine Methode, die zum Konvertieren von Zeilen in Spalten in Oracle SQL verwendet wird. Spalten können mithilfe einer UNION ALL-Abfrage in Zeilen umgewandelt werden. Im Folgenden sind die Schritte aufgeführt, um UNION ALL zum Konvertieren von Zeilen in Spalten zu verwenden: Schritt 1: Erstellen Sie eine Beispieltabelle Zuerst müssen wir eine Beispieltabelle erstellen, um die Daten vorzubereiten.
id Name
Punktzahl S core3 90
2 Lily . Punktzahl1 90
2

Lily

Punktzahl2

85

2

Lily

Score3

95

3 2 :
DROP TABLE score;
Zusammenfassung
Tom Score1 60
Die Konvertierung von Zeilen in Spalten ist eine gängige Datenverarbeitungstechnik, mit der wir Daten besser anzeigen und analysieren können. In Oracle SQL können wir UNPIVOT und UNION ALL verwenden, um Zeilen in Spalten umzuwandeln. Durch die Beherrschung dieser Konzepte und der zugehörigen Syntax können wir Daten in der Datenbank problemlos verarbeiten und analysieren.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Zeilen in Spalten in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn