Zitat Zitat von Fuerchau Beitrag anzeigen
Das ergibt sich doch im Ausdruck, da du doch keine neue Sortierung vorgibst als die Kunden-Nr.!
Die Reihenfolge im In-Ausdruck spielt überhaupt keine Rolle. Hier wird eine sequentielle Prüfung der Werte vorgenommen.

Was diesen Ausdruck angeht:
order by Case When Kdnr = 50 Then KdNr End,
Case When KdNr = 1 Then KdNr End, ...
So ist er im Moment wohl noch richtig, da der Default beim "Order By" "NULLS LAST" ist und dieses Verhalten nicht beeinflusst werden kann. Dies könnte mit dem nächsten Release geändert werden, dann stimmt der Sort nicht mehr. Bei OLAP-Funktionen ist die Angabe schon möglich.
... derANSI Standard erlaubt durchaus Sortierungen nach abgeleiteten Feldern (Ausdrücken) und (idiotischerweise) nach Feldern, die nicht im Resultset enthalten sind. Die Behandlung der Nullvalues ist nur geregelt, wenn die entsprechende Clause (Null first oder Null last) das regelt, ansonsten ist das Implementierungs spezifisch und sollte vermieden werden.
Dass diese Sortierung nach einem Case Ausdruck Käse ist, erkennt man daran, dass bei neu dazu kommenden Artrikeln SQL Statements angepasst werden müssen (order by in Views ist nicht ANSI konform und kann sich mithin künftig ändern). Ich bezweifle auch stark, dass ein Order by nach einem Case Konstrukt im richtigen Leben für entsprechende Datenmengen vernünftig skaliert und mit einem Index ausreichend gestützt werden kann.
Summa Summarum rate ich von diesem Ansatz ernstlich ab!!!

D*B