PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment utiliser case-when dans Ecto Queries in elixir ?

Comme le dit le commentaire, vous pouvez utiliser fragment/1 :

query = from t in <Model>, select: fragment("SUM(CASE WHEN status = ? THEN 1 ELSE 0 END)", 2)

Si vous voulez spécifier le tableau, cela fonctionne pour moi :

query = from t in <Model>, select: fragment("SUM(CASE WHEN ? = ? THEN 1 ELSE 0 END)", t.status, 2)