0Pricing
SQL Academy · Lektion

Nach mehreren Spalten sortieren

Gleichstände mit sekundären Sortierschlüsseln auflösen

Nach mehreren Spalten sortieren ist eine kostenlose SQL Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des SQL Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Das Problem mit Gleichständen

Wenn Sie nach einer einzelnen Spalte sortieren, haben Zeilen mit demselben Wert untereinander keine festgelegte Reihenfolge. Drei Produkte mit einem Preis von 20 können in beliebiger Reihenfolge zurückgegeben werden.

Um die Reihenfolge vollständig vorhersehbar zu machen, fügen Sie ein zweites Sortierkriterium hinzu.

-- Ties on price are ordered arbitrarily
SELECT name, price
FROM products
ORDER BY price;

Mehrere Sortierschlüssel angeben

ORDER BY akzeptiert eine durch Kommas getrennte Liste von Spalten. Die Datenbank sortiert nach der ersten Spalte, löst Gleichstände mit der zweiten auf und fährt so fort.

Hier werden Produkte nach dem Preis sortiert; Gleichstände werden alphabetisch nach name aufgelöst.

SELECT name, price
FROM products
ORDER BY price, name;

Die Reihenfolge der Schlüssel ist wichtig

Die Reihenfolge der Spalten verändert das Ergebnis. ORDER BY price, name ist nicht dasselbe wie ORDER BY name, price.

Der erste Schlüssel ist das primäre Sortierkriterium; spätere Schlüssel werden nur relevant, wenn es bei den vorherigen Gleichstände gibt.

-- Primary sort by category, then by name within each category
SELECT category, name
FROM products
ORDER BY category, name;

Richtung pro Spalte

Jeder Sortierschlüssel kann seine eigene Richtung haben. Kombinieren Sie ASC und DESC nach Belieben.

Damit werden die Einträge alphabetisch nach category gruppiert, innerhalb jeder Kategorie aber die teuersten Artikel zuerst angezeigt.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC;

DESC gilt pro Spalte

Ein häufiger Fehler ist die Annahme, dass DESC am Ende alles umkehrt. Es wirkt nur auf die Spalte, auf die es unmittelbar folgt.

In ORDER BY category, price DESC bleibt category aufsteigend sortiert; nur price wird absteigend sortiert.

-- category: ASC, price: DESC
SELECT category, price
FROM products
ORDER BY category, price DESC;

Drei oder mehr Schlüssel

Sie können so viele Sortierschlüssel aneinanderreihen, wie Sie benötigen. Jeder wird erst wirksam, wenn alle vorherigen Schlüssel gleich sind.

Sortieren Sie Bestellungen nach date, dann nach customer und anschließend innerhalb desselben customer und date nach total.

SELECT created_at, customer_id, total
FROM orders
ORDER BY created_at DESC, customer_id, total DESC;

Eine stabile, deterministische Sortierung

Für ein vollständig deterministisches Ergebnis schließen Sie die Sortierschlüssel mit einer eindeutigen Spalte wie dem Primärschlüssel ab. Dann können niemals zwei Zeilen denselben Rang haben.

Das ist für die Seitennavigation wichtig, die Sie in der nächsten Lektion kennenlernen.

SELECT id, name, price
FROM products
ORDER BY price DESC, id;

Ausdrücke und Spalten kombinieren

Sortierschlüssel können aus einer Kombination einfacher Spalten und Ausdrücke bestehen. Jeder Schlüssel ist unabhängig.

Damit wird zuerst absteigend nach dem Lagerwert und bei Gleichstand alphabetisch nach dem Namen sortiert.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC, name ASC;

Mit einem booleschen Wert eine Gruppe nach oben verschieben

Ein praktischer Trick: Sortieren Sie nach einem booleschen Ausdruck, um eine Gruppe an den Anfang oder das Ende zu verschieben. In PostgreSQL wird false vor true sortiert.

Damit werden Artikel auf Lager (stock > 0) zuerst angezeigt, innerhalb jeder Gruppe die günstigsten.

SELECT name, stock, price
FROM products
ORDER BY (stock = 0), price;

Die Platzierung von NULL steuern

Standardmäßig wird NULL in PostgreSQL bei aufsteigender Sortierung zuletzt und bei absteigender Sortierung zuerst eingeordnet. Überschreiben Sie dies bei jedem Schlüssel mit NULLS FIRST oder NULLS LAST.

SELECT name, discount
FROM products
ORDER BY discount DESC NULLS LAST;

Alles zusammenführen

Eine realistische Sortierung mit mehreren Schlüsseln kann Richtung, Ausdrücke und die Behandlung von NULL-Werten kombinieren. Lesen Sie sie von links nach rechts: Jeder Schlüssel verfeinert den vorherigen.

SELECT category, name, price, rating
FROM products
ORDER BY category ASC,
         rating DESC NULLS LAST,
         price ASC;

Schnelltest

Betrachten Sie ORDER BY category, price DESC.

Zusammenfassung

Mehrspaltige Sortierung kurz zusammengefasst:

  • Sortierschlüssel durch Kommas getrennt auflisten; frühere Schlüssel haben Vorrang
  • Jeder Schlüssel hat sein eigenes ASC/DESC
  • Mit einer eindeutigen Spalte abschließen, um eine deterministische Reihenfolge zu erhalten
  • Fehlende Werte mit NULLS FIRST/NULLS LAST steuern

Als Nächstes begrenzen Sie mit LIMIT und OFFSET, wie viele Zeilen zurückgegeben werden.

SELECT category, name, price
FROM products
ORDER BY category ASC, price DESC, id;

Häufig gestellte Fragen

Ist die Lektion „Nach mehreren Spalten sortieren“ kostenlos?

Ja — der vollständige Text von „Nach mehreren Spalten sortieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des SQL Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der SQL Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Nach mehreren Spalten sortieren“?

Gleichstände mit sekundären Sortierschlüsseln auflösen Du übst SQL Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um SQL Academy zu starten?

Keine Vorkenntnisse erforderlich. SQL Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Nach mehreren Spalten sortieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser SQL Academy-Lektion Code schreiben und ausführen?

Ja. Jede SQL Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Mit ORDER BY sortieren
  2. Nach mehreren Spalten sortieren
  3. LIMIT und OFFSET
  4. Top-N-Datensätze finden
← Zurück zu SQL Academy