sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql BESTÄLL EFTER mellanslag

Vet inte, kan vara något sånt här:

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 fioldemo

den här delar upp sträng för mellanslag till array, konverterar första posten till numerisk och sorterar resultaten efter detta nummer och återstående sträng



  1. Välj användare som har kvalificerande data på flera rader i tabellen wp_usermeta

  2. codeigniter mysql left join include select

  3. När ska man använda TEXT i mysql istället för VARCHAR

  4. FileUpload kontroll i visual studio och spara bilden i MySql-databasen