PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Postgresql ĐẶT HÀNG THEO khoảng trắng

Không biết, có thể là một cái gì đó như thế này:

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]

bản trình diễn sql fiddle

cái này chia chuỗi theo khoảng trắng thành mảng, chuyển đổi mục nhập đầu tiên thành số và sắp xếp kết quả theo số này và chuỗi còn lại



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng số với dấu phẩy trong PostgreSQL

  2. PostgreSQL Tạo chỉ mục

  3. Tự động tạo id trong Spring MVC

  4. Sử dụng lại giá trị chọn được tính toán

  5. Sửa chữa hỏng cơ sở dữ liệu postgresql