Axel Richter: Nach mehreren Kriterien sortieren

Beitrag lesen

Hallo!

SELECT ordersatz,artikelnr_intern,ueberschrift,anzahl_lagernd FROM artikel ORDER BY ordersatz,artikelnr_intern,anzahl_lagernd ASC

...nun wird zwar nach "anzahl_lagernd" Aufsteigend sortiert, nach den anderen beiden jedoch standardmässig Absteigend sortiert, da sich das ASC ja nur auf das unmittelbar davorstehende Feld bezieht

Nein, standardmäßig wird aufsteigend sortiert.

Folgender Versuch geht auch nicht so wie ich es will:

SELECT ordersatz,artikelnr_intern,ueberschrift,anzahl_lagernd FROM artikel ORDER BY ordersatz ASC,artikelnr_intern ASC,anzahl_lagernd ASC

bewirkt genau das gleiche wie die 1. Abfrage

Ja, klar, weil ASC eben Standard ist ;-))

Aufsteigend heißt vom Kleinsten zum Größten also:
1
2
3
4

bzw:
a
b
c
d

Andersrum wäre absteigend, also DESC.

Du weißt aber schon, dass die Datensätze durch die Sortierung nicht "auseinandergerissen" werden? Dein Statement sortiert die _Datensätze_ hauptsächlich nach ordersatz (aufsteigend, also vom Kleinsten zum Größten). Bei identischen Werten im Feld ordersatz, werden _diese_ Datensätze nach artikelnr_intern sortiert und _nur_ für Datensätze, die identische Werte in den Feldern ordersatz _und_ artikelnr_intern haben, greift die Sortierung nach anzahl_lagernd.

viele Grüße

Axel