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

đường ray sắp xếp theo thứ tự cụ thể

Vì 3, 4, 2 không phải là thứ tự tuần tự, nên có một điều kiện tùy chỉnh để sắp xếp chúng đúng cách, bạn có thể làm điều đó bằng cách sử dụng CASE WHEN biểu thức .

order_sql = Arel.sql(
  'CASE WHEN users_count = 3 THEN 0 ' \
    'WHEN users_count = 4 THEN 1 ' \
    'ELSE 3 END'
)
Group.where(users_count: [2,3,4]).order(order_sql)

Điều này sẽ cung cấp cho 0 khi users_count = 3 , 1 khi users_count = 43 cho các trường hợp khác. Với thứ tự tăng dần mặc định, bạn sẽ nhận được kết quả như mong muốn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo một ứng dụng nhiều người thuê bằng các lược đồ và Rails của PostgreSQL

  2. Npgsql / Postgresql:hàm không tồn tại thông báo lỗi khi có

  3. docker-compile up &&docker-compile build:lỗi với PostgreSQL

  4. Postgresql - cách lấy các mục nhập trong một bảng không khớp trong bảng khác

  5. Sao chép một vài cột của tệp csv vào bảng