sql >> Database >  >> RDS >> PostgreSQL

Postgresql BESTELLEN OP spaties

Weet niet, zou zoiets kunnen zijn:

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]

sql fiddle-demo

deze splitst string door spaties naar array, converteert eerste invoer naar numeriek en sorteert resultaten op dit aantal en resterende string



  1. hoe een Accent-ongevoelig filter in django te hebben met postgres?

  2. Verbeterde SQLite-querysyntaxis op Android

  3. PHP-lus die fungeert als cronjob [zorg ervoor dat er slechts één instantie wordt uitgevoerd]

  4. Hoe speciale tekens zoals &in te voeren in de Oracle-database?