Bei Ihrer letzten Abfrage haben Sie wirklich zwei Sorten in einer. Die Eltern können aufsteigend oder absteigend sortieren, aber die Kinder können nur aufsteigend sortieren.
Nachdem ich mir das angesehen habe, glaube ich, dass Sie mit so etwas eine Lösung finden können.
order by case
when depth = 0
then path
/*
secret function that always returns the
right numbers regardless of whether or not the sort is ascending.
*/
else XXX_function('DESC', path)
end desc;
Ich glaube, die Logik ist vernünftig, aber Sie müssen herausfinden, wie Sie die Zahlen bei absteigenden Sortierungen ersetzen, da die Dinge "auf dem Kopf" stehen. (Vielleicht die Array-Positionen umkehren)