PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

релсите сортират по определен ред

Тъй като 3, 4, 2 не е последователен ред, трябва да има персонализирано условие, за да ги подредите правилно, можете да го направите, като използвате CASE WHEN израз .

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)

Което ще даде 0 когато users_count = 3 , 1 когато users_count = 4 и 3 за други случаи. С възходящ ред по подразбиране ще получите желания резултат.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Делението на цели числа връща 0

  2. Как типовете дати се обработват от JDBC драйвера?

  3. java.math.BigInteger не може да бъде прехвърлен към java.lang.Integer

  4. PHP PDO Postgres срещу Sqlite тип колона за count(*)

  5. Прозоречните функции на PostgreSQL игнорират нулевите стойности