PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

szyny sortuj według określonej kolejności

Ponieważ 3, 4, 2 nie jest sekwencyjną kolejnością, powinien istnieć niestandardowy warunek, aby uporządkować je poprawnie, możesz to zrobić za pomocą CASE WHEN wyrażenie .

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)

Co da 0 gdy users_count = 3 , 1 gdy users_count = 4 i 3 w innych przypadkach. Z domyślną kolejnością rosnącą uzyskasz pożądany wynik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. uruchomienie sumy przy użyciu funkcji Windows w sql daje ten sam wynik dla tych samych danych

  2. wyeliminować zduplikowane wartości tablicy w postgresie

  3. Jak uzyskać aktualny czas (bez strefy czasowej) w PostgreSQL

  4. Tworzenie przestrzeni tabel w postgresql

  5. Jak usunąć bazę danych PostgreSQL, jeśli są z nią aktywne połączenia?