Ich versuche, nach mehreren Spalten in SQL und in verschiedene Richtungen zu sortieren. column1
würde absteigend und column2
aufsteigend sortiert werden .
Wie kann ich das machen?
sql
sql-order-by
Señor Reginold Francis
quelle
quelle
Antworten:
Dies sortiert alles zuerst nach
column1
(absteigend) und dann nachcolumn2
(aufsteigend, was die Standardeinstellung ist), wenn diecolumn1
Felder für zwei oder mehr Zeilen gleich sind.quelle
column1
zuerst und danncolumn2
immer dann sortiert, wenn diecolumn1
Felder für zwei Zeilen gleich sind.column2
und führt dann eine STABLE-Sortierung nach durchcolumn1
. Dies ist klarer für Leute, die wissen, was stabile Sortierung ist.Den anderen Antworten fehlt ein konkretes Beispiel, also hier geht es:
Angesichts der folgenden Personentabelle :
Wenn Sie die folgende Abfrage ausführen:
Die Ergebnismenge sieht folgendermaßen aus:
quelle
1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc
Gibt es eine Möglichkeit, dies zu überwinden?FirstName, LastName
Einträge mit unterschiedlichenYearOfBirth
quelle
Mehrere Reihenfolge der Spalten hängt von den beiden entsprechenden Werte der Spalte: Hier ist meine Tabelle Beispiel , in dem zwei benannten Spalten mit Alphabete und Zahlen und die Werte in diesen beiden Spalten sind asc und desc Aufträge.
Jetzt führe ich Order By in diesen beiden Spalten aus, indem ich den folgenden Befehl ausführe:
Jetzt füge ich wieder neue Werte in diese beiden Spalten ein, wobei der Alphabetwert in ASC- Reihenfolge:
und die Spalten in der Beispieltabelle sehen folgendermaßen aus. Führen Sie nun erneut den gleichen Vorgang aus:
Sie können sehen, dass die Werte in der ersten Spalte in absteigender Reihenfolge sind, die zweite Spalte jedoch nicht in ASC-Reihenfolge.
quelle
(g, 10),(g,12)
. Führen Sie dann Ihre Order-by-Abfrage aus, und Sie erhalten die zweite Spalte alsASC
Order (das heißtg-10,g-11,g-12)
Sie können mehrere Bestellungen unter mehreren Bedingungen verwenden.
quelle