sql >> Database >  >> RDS >> PostgreSQL

rails sorteren op specifieke volgorde

Aangezien 3, 4, 2 geen opeenvolgende volgorde is, moet er een aangepaste voorwaarde zijn om ze correct te bestellen. U kunt dit doen door de CASE WHEN uitdrukking .

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)

Dat geeft 0 wanneer users_count = 3 , 1 wanneer users_count = 4 , en 3 voor andere gevallen. Met standaard oplopende volgorde krijgt u het gewenste resultaat.



  1. jQuery highlight() breekt in dynamische tabel

  2. MySQL SELECT DISTINCT moet hoofdlettergevoelig zijn?

  3. PHP/MYSQL:databasetabel voor e-mailmeldingen

  4. FREETEXTTABLE heeft altijd een rangorde van 0