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

Oracle:Làm cách nào tôi có thể triển khai một thứ tự tự nhiên trong một truy vấn SQL?

Bạn có thể sử dụng các hàm trong mệnh đề theo thứ tự của mình. Trong trường hợp này, bạn có thể tách các phần không phải dạng số và dạng số của trường và sử dụng chúng làm hai trong số các tiêu chí sắp xếp.

select * from t
 order by to_number(regexp_substr(a,'^[0-9]+')),
          to_number(regexp_substr(a,'[0-9]+$')),
          a;

Bạn cũng có thể tạo chỉ mục dựa trên chức năng để hỗ trợ điều này:

create index t_ix1
    on t (to_number(regexp_substr(a, '^[0-9]+')),
          to_number(regexp_substr(a, '[0-9]+$')), 
          a);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi hàng cột trong Oracle Sql

  2. cột động trong oracle sử dụng sql

  3. Thủ tục lưu trữ PL / SQL là gì trong cơ sở dữ liệu Oracle

  4. Oracle MERGE nâng lỗi ORA-00904

  5. Lệnh gọi thủ tục được lưu trữ với con trỏ ném ngoại lệ tên cột không hợp lệ