Konvertieren Sie Zeilen in Spalten in MySQL
- Erstellen Sie einen Datensatz in MySQL
-
Konvertieren Sie Zeilen in Spalten in MySQL mit der
CASE
-Anweisung -
Konvertieren Sie Zeilen in Spalten in MySQL mit der Anweisung
IF
In diesem Tutorial lernen wir, wie man Zeilen in Spalten einer bestimmten Tabelle in MySQL umwandelt.
Erstellen Sie einen Datensatz in MySQL
Es ist häufig erforderlich, die geeigneten Informationen zu erhalten, die mit den erforderlichen Zeilendaten verbunden sind, die als Spalten angezeigt werden. Lassen Sie uns verstehen, wie Sie dies erreichen können.
Bevor wir jedoch beginnen, erstellen wir einen Dummy-Datensatz, mit dem wir arbeiten können. Hier erstellen wir eine Tabelle, student_details
, zusammen mit einigen Zeilen.
-- create the table student_details
CREATE TABLE student_details(
stu_id int,
stu_firstName varchar(255) DEFAULT NULL,
stu_lastName varchar(255) DEFAULT NULL,
primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName)
VALUES(1,"Preet","Sanghavi"),
(2,"Rich","John"),
(3,"Veron","Brow"),
(4,"Geo","Jos"),
(5,"Hash","Shah"),
(6,"Sachin","Parker"),
(7,"David","Miller");
Die obige Abfrage erstellt eine Tabelle und Zeilen mit den Vor- und Nachnamen der Schüler. Um die Einträge in den Daten anzuzeigen, verwenden wir den folgenden Code:
SELECT * FROM student_details;
Der obige Code würde die folgende Ausgabe liefern:
stu_id stu_firstName stu_lastName
1 Preet Sanghavi
2 Rich John
3 Veron Brow
4 Geo Jos
5 Hash Shah
6 Sachin Parker
7 David Miller
Konvertieren Sie Zeilen in Spalten in MySQL mit der CASE
-Anweisung
Die grundlegende Syntax der CASE
-Technik lässt sich wie folgt veranschaulichen.
SELECT
column_name
SUM(CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END) AS Preet_Present
FROM
table_name
GROUP BY
column_name;
Lassen Sie uns nun überprüfen, ob die Schüler mit den Namen Preet
, Rich
und Veron
in der Klasse anwesend sind oder nicht. Außerdem werden wir versuchen, die Ergebnisse so darzustellen, dass Zeilen mit der oben genannten Technik in Spalten umgewandelt werden.
Diese Operation kann mit der folgenden Abfrage durchgeführt werden,
SELECT
stu_firstName,
SUM(CASE WHEN stu_firstName = "Preet" THEN 1 ELSE 0 END) AS Preet_Present,
SUM(CASE WHEN stu_firstName = "Rich" THEN 1 ELSE 0 END) AS Rich_Present,
SUM(CASE WHEN stu_firstName = "Veron" THEN 1 ELSE 0 END) AS Veron_Present
FROM
student_details
GROUP BY
stu_firstName;
Wie wir sehen können, zielen wir in der obigen Abfrage darauf ab, die Zeilen in Spalten wie Preet_present
, Rich_present
und Veron_present
umzuwandeln. Die Ausgabe der oben erwähnten Abfrage wird wie folgt dargestellt.
SELECT DISTINCT
COUNT(DISTINCT IF(stu_firstName like '%reet',
stu_id,
NULL)) AS count_student_ids
FROM student_details;
Der obige Code zählt die Anzahl der unterschiedlichen stu_id
aus der student_details
-Tabelle, vorausgesetzt, dass stu_firstName
mit reet
in der IF
-Klausel endet. Die Ausgabe des obigen Codes lautet wie folgt:
stu_firstName Preet_Present Rich_Present Veron_Present
Preet 1 0 0
Rich 0 1 0
Veron 0 0 1
Geo 0 0 0
Hash 0 0 0
Sachin 0 0 0
David 0 0 0
Hinweis: Der obige Code verwendete die Aliasnamen
Preet_Present
,Rich_Present
undVeron_Present
mit dem SchlüsselwortAS
.
Eine Alternative zur CASE
-Technik ist die IF
-Technik, die uns helfen kann, ähnliche Ergebnisse zu erzielen.
Konvertieren Sie Zeilen in Spalten in MySQL mit der Anweisung IF
Eine IF
-Anweisung filtert Daten basierend auf einer bestimmten Bedingung oder einer Reihe von Bedingungen in MySQL. Die grundlegende Syntax zum Konvertieren von Zeilen in Spalten in MySQL mit der Anweisung IF
kann wie folgt veranschaulicht werden.
SELECT
column_name,
SUM(IF(column_name= "something", do_this, else_do_this)) AS Preet_Present
FROM
table_name
GROUP BY
column_name;
Wie die obige Abfrage zeigt, haben wir die Operation do_this
ausgeführt, wenn die Bedingung IF
True
zurückgibt. Wenn die IF
-Bedingung False
zurückgibt, führen wir die else_do_this
-Operation aus.
Wir können die folgende Abfrage für unsere Tabelle student_details
verwenden, um das gewünschte Ergebnis zu erhalten.
SELECT
stu_firstName,
SUM(IF(stu_firstName = "Preet", 1, 0)) AS Preet_Present,
SUM(IF(stu_firstName = "Rich",1,0)) AS Rich_Present,
SUM(IF(stu_firstName = "Veron", 1,0)) AS Veron_Present
FROM
student_details
GROUP BY
stu_firstName;
Die Ausgabe der obigen Abfrage kann wie folgt dargestellt werden.
stu_firstName Preet_Present Rich_Present Veron_Present
Preet 1 0 0
Rich 0 1 0
Veron 0 0 1
Geo 0 0 0
Hash 0 0 0
Sachin 0 0 0
David 0 0 0
Daher können wir mit Hilfe der CASE
- und IF
-Anweisungen die Zeilen in MySQL effizient in Spalten umwandeln.
Verwandter Artikel - MySQL Row
- Duplizieren Sie eine Zeile in MySQL
- Mehrere Zeilen in MySQL einfügen
- MySQL teilt Zeichenfolge in Zeilen auf
Verwandter Artikel - MySQL Column
- Aktualisieren Sie mehrere Spalten in mehreren Zeilen mit unterschiedlichen Werten in MySQL
- Finden Sie Tabellen in MySQL mit bestimmten Spaltennamen darin
- Fügen Sie in MySQL eine Auto-Increment-Spalte hinzu
- Geben Sie eindeutige Einschränkungen für mehrere Spalten in MySQL an
- Identitätsspalte in MySQL