sql >> Database teknologi >  >> RDS >> PostgreSQL

Postgresql BESTIL EFTER mellemrum

Ved ikke, det kan være noget som dette:

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 violindemo

denne opdeler streng efter mellemrum til matrix, konverterer første indtastning til numerisk og sorterer resultater efter dette tal og resterende streng



  1. SQL Server 2016 Enterprise Edition Ydeevnefordele

  2. Flask-SQLAlchemy db.session.query(Model) vs Model.query

  3. Hvordan tæller man varer pr. kategori?

  4. MySQL:Kan en lagret procedure kalde et Java-program?