sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo preservar el orden de los niños para aparecer después de sus padres

Realmente tiene dos tipos en uno en su última consulta. Los padres pueden ordenar de manera ascendente o descendente, pero los niños solo pueden ordenar de manera ascendente.

Después de ver esto, creo que puede obtener una solución con algo como esto.

   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;

Creo que la lógica es sólida, pero debe descubrir cómo reemplazar los números en orden descendente, ya que las cosas estarán 'al revés'. (Tal vez invertir las posiciones de la matriz)