PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Làm thế nào để sử dụng case-when trong Ecto Queries trong elixir?

Giống như nhận xét đã nói, bạn có thể sử dụng fragment/1 :

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

Nếu bạn muốn chỉ định bảng, điều này phù hợp với tôi:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL - làm tròn số dấu phẩy động

  2. chọn một cột dựa trên giá trị tối thiểu của một cột khác

  3. Nhận dấu thời gian từ các cột ngày và giờ nối

  4. PSQLException:ERROR:lỗi cú pháp trong tsquery

  5. CS50:Toán tử LIKE, thay thế biến với% mở rộng