PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come preservare l'ordine dei bambini di apparire dopo i loro genitori

Hai davvero due tipi in uno sulla tua ultima query. I genitori possono ordinare in ordine crescente o decrescente, ma i bambini possono solo ordinare in ordine crescente.

Dopo aver esaminato questo, credo che tu possa ottenere una soluzione con qualcosa del genere.

   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;

Credo che la logica sia corretta, ma devi capire come sostituire i numeri negli ordinamenti decrescenti poiché le cose saranno "sottosopra". (Forse invertire le posizioni dell'array)