PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie verwende ich case-when in Ecto Queries in Elixir?

Wie der Kommentar sagte, können Sie fragment/1 verwenden :

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

Wenn Sie die Tabelle angeben möchten, funktioniert dies für mich:

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