Detaillierte Beispiele zur Konvertierung von Zeilen in Spalten und Spalten in Zeilen in MySQL

Detaillierte Beispiele zur Konvertierung von Zeilen in Spalten und Spalten in Zeilen in MySQL

MySQL Zeile zu Spalte, Spalte zu Zeile

Der Satz ist nicht schwierig, deshalb werde ich ihn nicht im Detail erklären. Analysieren Sie den Satz beim Lesen Satz für Satz von innen nach außen.

Zeile zu Spalte

Es liegt eine Tabelle wie in der Abbildung vor. Nun wollen wir im Abfrageergebnis die Zeilen in Spalten umwandeln.

1

Die Anweisung zur Tabellenerstellung lautet wie folgt:

CREATE TABLE `TEST_TB_GRADE` (
 `ID` int(10) NICHT NULL AUTO_INCREMENT,
 `USER_NAME` varchar(20) DEFAULT NULL,
 `KURS` varchar(20) DEFAULT NULL,
 `SCORE` float DEFAULT '0',
 PRIMÄRSCHLÜSSEL (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
in TEST_TB_GRADE(USER_NAME, COURSE, SCORE) Werte einfügen
("Zhang San", "Mathematik", 34),
("Zhang San", "Chinesisch", 58),
("Zhang San", "Englisch", 58),
("Li Si", "Mathematik", 45),
("Li Si", "Chinesisch", 87),
("Li Si", "Englisch", 45),
("Wang Wu", "Mathematik", 76),
("Wang Wu", "Chinesisch", 34),
("Wang Wu", "Englisch", 89);

Abfrageanweisung:

Der Grund, warum MAX hier verwendet wird, besteht darin, die Punkte ohne Daten auf 0 zu setzen, um NULL zu verhindern

SELECT Benutzername ,
  MAX(CASE Kurs WENN 'Kurs' DANN Punktzahl SONST 0 ENDE ) Mathematik,
  MAX(CASE Kurs WENN 'Chinesisch' DANN Punktzahl SONST 0 ENDE ) Chinesisch,
  MAX(CASE Kurs WENN 'Englisch' DANN Punktzahl SONST 0 ENDE ) Englisch VON test_tb_note
GRUPPE NACH BENUTZERNAME;

Ergebnisse:

2

Spalte zu Zeile

Es gibt eine Tabelle wie in der Abbildung dargestellt. Nun hoffen wir, dass die Abfrageergebnisse in Zeilen aufgelistet werden

3

Die Anweisung zur Tabellenerstellung lautet wie folgt:

CREATE TABLE `TEST_TB_GRADE2` (
 `ID` int(10) NICHT NULL AUTO_INCREMENT,
 `USER_NAME` varchar(20) DEFAULT NULL,
 `CN_SCORE` float DEFAULT NULL,
 `MATH_SCORE` float DEFAULT NULL,
 `EN_SCORE` float DEFAULT '0',
 PRIMÄRSCHLÜSSEL (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
in TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) Werte einfügen
("Zhang San", 34, 58, 58),
("Li Si", 45, 87, 45),
("Wang Wu", 76, 34, 89);

Abfrageanweisung:

Wählen Sie Benutzername, 'Sprache' KURS, CN_SCORE als SCORE aus test_tb_grade2
Union-Auswahl von Benutzername, 'Benutzername' KURS, MATH_SCORE als SCORE von test_tb_grade2
Union Select Benutzername, „Englisch“ Kurs, EN_SCORE als SCORE aus Test-TB_Grad2
Sortieren nach Benutzername, KURS;

Ergebnisse:

4

Vielen Dank fürs Lesen, ich hoffe, es kann Ihnen helfen, danke für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Einfache Implementierung von SQL Zeile zu Spalte und Spalte zu Zeile
  • SQL-Codeerklärung für Zeile zu Spalte und Spalte zu Zeile
  • Die ultimative Lösung zum Konvertieren von Zeilen in Spalten und Spalten in Zeilen in einer MSSQL-Datenbank
  • SQL Zeile zu Spalte und Spalte zu Zeile

<<:  JavaScript-Tippspiel

>>:  Detaillierte Erläuterung der erzwungenen Freigabe belegter Ports unter Linux und der Methode zum Öffnen von Ports in der Linux-Firewall

Artikel empfehlen

Detaillierte Erklärung der MySQL-Halbsynchronisierung

Inhaltsverzeichnis Vorwort MySQL Master-Slave-Rep...

So stellen Sie Dienste in Windows Server 2016 bereit (Grafisches Tutorial)

Einführung Wenn eine große Anzahl an Systemen ins...

Docker-Netzwerkmodus und Konfigurationsmethode

1. Docker-Netzwerkmodus Wenn Docker Run einen Doc...

So speichern Sie Bilder in MySQL

1 Einleitung Beim Gestalten einer Datenbank ist e...

DNS-Konfigurationsmethode für den Linux Domain Name Service

Was ist DNS Der vollständige Name von DNS lautet ...

Detaillierte Einführung in die Grundkonzepte von JS

Inhaltsverzeichnis 1. Eigenschaften von JS 1.1 Mu...

Eine kurze Analyse zum besten Umgang mit vergessenen MySQL 8-Passwörtern

Vorwort Leser, die mit MySQL vertraut sind, werde...

Der gesamte Prozess der Optimierung des ersten Ladens einer Vue-Seite

Inhaltsverzeichnis Vorwort 1. Bildoptimierung 2. ...

Tipps zum Mischen von OR und AND in SQL-Anweisungen

Heute gibt es eine solche Anforderung. Wenn die a...

Detaillierte Erläuterung der Implementierung der Nginx-Prozesssperre

Inhaltsverzeichnis 1. Die Rolle der Nginx-Prozess...

Allgemeines Startskriptbeispiel für ein Linux-Java-Programm

Allerdings ist die Häufigkeit des Shell-Starts se...

Lösung, wenn der Docker-Container nicht auf den Host-Port zugreifen kann

Ich bin kürzlich bei der Arbeit auf ein Problem g...