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

Postgresql ORDER BY mezery

Nevím, může to být něco takového:

with cte as (
   select col1, regexp_split_to_array(col1, ' ') as d
   from Table1

)
select col1
from cte
order by
    d[1] ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$' desc,
    case
        when d[1] ~ '^([0-9]+[.]?[0-9]*|[.][0-9]+)$' then
            d[1]::numeric
    end,
    d[2]

ukázka houslí sql

toto rozdělí řetězec mezerami na pole, převede první položku na číselnou a seřadí výsledky podle tohoto čísla a zbývajícího řetězce



  1. Chyba:ORA-01704:řetězcový literál je příliš dlouhý

  2. Jak převést html do pdf pomocí php?

  3. Jak testovat v každé z několika tabulek a mezi nimi?

  4. Uspořádání MySQL podle kategorie a podkategorie