Je hebt echt twee soorten in één op je laatste vraag. De ouders kunnen oplopend of aflopend sorteren, maar de kinderen kunnen alleen oplopend sorteren.
Na dit te hebben bekeken, geloof ik dat je met zoiets als dit een oplossing kunt krijgen.
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;
Ik geloof dat de logica klopt, maar je moet uitzoeken hoe je de getallen op aflopende soorten kunt vervangen, omdat de dingen 'ondersteboven' zullen zijn. (Misschien de arrayposities omkeren)