sql >> Databáze >  >> RDS >> PostgreSQL

Jak zachovat řád dětí, aby se objevily po rodičích

Ve vašem posledním dotazu máte skutečně dva druhy v jednom. Rodiče mohou řadit vzestupně nebo sestupně, ale děti mohou řadit pouze vzestupně.

Když jsem se na to podíval, věřím, že s něčím takovým můžete získat řešení.

   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;

Věřím, že logika je správná, ale musíte přijít na to, jak nahradit čísla na sestupných třídách, protože věci budou „vzhůru nohama“. (Možná obrátit pozice pole)



  1. MYSQL Vložit Ignorovat na jeden sloupec

  2. jsonb dotaz LIKE na vnořené objekty v poli

  3. Propojení programu c++ s Oracle

  4. MYSQL – rozdělení dat do více řádků