Ich bin komplett neu in mysql. Hier versuche ich eine Abfrage in mysql
, die eine Spalte col1
in 4 verschiedenen Spalten basierend auf seiner Kategorie (col2
) in sortierter Reihenfolge wie unten dargestellt.Teilen Sie die Spalten in MySQL in mehrere Spalten
select if(category = 'first',name ,NULL) as first,
if(category = 'second',name,NULL) as second,
if(category = 'third',name,NULL) as third,
if(category = 'fourth',name,NULL) as fourth
from 'table';
dieser Code gibt mir die vier Spalten, aber ich bin jetzt stecken, da ich nicht in der Lage bin weiter diese zu filtern: Ich habe eine Abfrage wie diese bis jetzt geschrieben.
Gegeben Tabelle:
name category
John first
Sunil third
Jenny third
Ashley fourth
Meera second
Abhay first
Erforderliche Antwort:
col1 col2 col3 col4
Abhay Meera Jenny Ashley
John NULL Sunil NULL
Beachten Sie, dass alle Spalten in der Antwort sortiert werden.
Edit: Ich denke, die Frage ist nicht klar über das Format der endgültigen Antwort. Danke @philipxy für das Aufzeigen. Die endgültige Antwort sollte in mindestens der Anzahl der Zeilen angepasst werden (in meinem Fall 2). Alle Spalten sollten die gleiche Anzahl von Zeilen haben, und wenn eine Spalte kleinere Werte hat, dann wird diese Zeile
NULL
Wert in entsprechenden Spalten haben, z. B.col2
undcol 4
oben. Schließlich sollten alle Spalten in sortierter Reihenfolge sein, wobeiNULL
in der letzten (falls vorhanden) ist. Angenommen, es gab einen Eintrag mit der BezeichnungOlly
mitcategory
fourth
dann sollte es vorNULL
incol4
und nachAshley
erscheinen.
ist die erforderliche Ausgabe angenommen, dass nur 2 Zeilen haben? oder könnte es mehr geben, abhängig von der Anzahl der Zeilen in der Originaltabelle? – Yousaf
Es kann mehr Zeilen geben. Ich habe hier nur ein Beispiel gezeigt. –
Warum versuchen Sie das zu tun? Dies zwingt Werte in die Zeilen einer Tabelle, als wäre es ein GUI-Gitter. Sie sollten wahrscheinlich nicht in einer SQL-Tabelle formatieren, sollten Sie in einer GUI formatieren. Bedenkt, dass Sie nicht wissen, was "select t. *" Bedeutet. Sie sind fast sicher, wollen nicht das Ergebnis, das Sie verlangen. – philipxy