Ich versuche, nach mehreren Spalten in SQL und in verschiedenen Richtungen zu sortieren. column1
würde absteigend sortiert werden, und column2
aufsteigend.Reihenfolge der SQL-Mehrfachspalte
Wie kann ich das tun?
Ich versuche, nach mehreren Spalten in SQL und in verschiedenen Richtungen zu sortieren. column1
würde absteigend sortiert werden, und column2
aufsteigend.Reihenfolge der SQL-Mehrfachspalte
Wie kann ich das tun?
ORDER BY column1 DESC, column2
Diese sortiert alles von column1
(absteigend) zuerst, und dann durch column2
(aufsteigend, dies ist die Standardeinstellung), wenn die column1
Felder für zwei Reihen gleich sind.
hier, wie man Spalte1 oder Spalte2 bestellt? – PoliDev
@PoliDev, Zuerst sortiert er nach column1 in DESCending order und nach column2 (in ASCending order) – zaheer
Aus Gründen der Übersichtlichkeit sortiert er zuerst alles nach 'column1' und dann nach' column2', wenn die 'column1' Felder für zwei Zeilen gleich sind . –
SELECT *
FROM mytable
ORDER BY
column1 DESC, column2 ASC
Die anderen Antworten fehlt ein konkretes Beispiel, so geht es hier:
die folgenden Menschen Tabelle:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Thomas | More | 1478
Thomas | Jefferson | 1826
Wenn Sie die Abfrage unter ausführen:
SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC
Die Ergebnismenge sieht wie folgt aus:
FirstName | LastName | YearOfBirth
----------------------------------------
Thomas | More | 1478
Thomas | Jefferson | 1826
Thomas | Alva Edison | 1847
Benjamin | Franklin | 1706
Diese Antwort ist eine großartige Ergänzung zu der sehr hilfreichen und kurzen Antwort. – enderland
Das ist ein gutes Beispiel, viele denken, dass wie Sie 2 Spalten auf einmal sortieren können, was tatsächlich nicht passiert, selbst wenn Sie 2 Spalten für die Bestellanfrage setzen –
'Select *' * * –
Mehrere Reihenfolge der Spalten hängt von den beiden entsprechenden Werte der Spalte: Hier ist meine Tabelle Beispiel, in dem zwei mit Alphabete und Zahlen und die Werte in diesen beiden Spalten mit den Namen Spalten asc und ab Aufträge.
Jetzt führe ich Order By in diesen beiden Spalten von unten Befehl ausführen:
nun wieder einfügen ich neue Werte in diesen beiden Spalten, wo Alphabet Wert in ASC bestellen:
und die Spalten in Beispieltabelle sehen so aus. nun wieder die gleiche Operation durchführen:
Sie können die Werte in der ersten Spalte zu sehen sind in Ordnung, aber ab zweite Spalte ist nicht in ASC Reihenfolge.
Sie können mehrere Bestell auf mehrere Bedingung verwenden,
ORDER BY
(CASE
WHEN @AlphabetBy = 2 THEN [Drug Name]
END) ASC,
CASE
WHEN @TopBy = 1 THEN [Rx Count]
WHEN @TopBy = 2 THEN [Cost]
WHEN @TopBy = 3 THEN [Revenue]
END DESC
Funktioniert die Indizierung, wenn ich "CASE" in "ORDER BY" verwende? –
Dies ist das „googeln Antworten“ erste Ergebnis. Zumindest war es, als ich "SQL-Ordering by zwei Spalten" googelte. Es ist deutlich lesbarer als die entsprechende offizielle Dokumentseite, die nicht einmal auf meiner ersten Suchergebnisseite erschien, bis ich meine Abfrage in "mysql 'order by" änderte. –
Gegeben, wie oft eine SO-Frage von Google kommt Ich finde es immer schrecklich, dass Leute damit antworten. SO ist entweder hier, um zu antworten oder nicht, und ich kann nicht verstehen, warum das Leiten von Site-Traffic weg ist eine gute Sache – user001