sql >> Databáze >  >> RDS >> PostgreSQL

kolejnice seřadit podle konkrétního pořadí

Vzhledem k tomu, že 3, 4, 2 není sekvenční pořadí, měla by existovat vlastní podmínka pro jejich správné uspořádání, můžete to udělat pomocí CASE WHEN výraz .

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ž dá 0 když users_count = 3 , 1 když users_count = 4 a 3 pro jiné případy. S výchozím vzestupným pořadím získáte požadovaný výsledek.



  1. Pomáhá přiřazení vstupních parametrů uložené procedury lokálním proměnným optimalizovat dotaz?

  2. Kolik MySql dotazů/sekundu může server zpracovat?

  3. Vyberte více součtů pomocí dotazu MySQL a zobrazte je v samostatných sloupcích

  4. Ladit PDO mySql vložit NULL do databáze místo prázdné