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

Tuyên bố trường hợp trong ARel

Tôi nghĩ từ Arel v7.x đã giới thiệu Arel ::Nodes ::Case có thể được sử dụng cho các câu lệnh trường hợp. Bạn có thể viết lại truy vấn này dưới dạng:

def case_statements
  orders = Order.arel_table
  Arel::Nodes::Case.
  new(orders[:quantity]).
  when(2).then(orders[:quantity] * 500).
  when(5).then(orders[:quantity] * 450).
  when(10).then(orders[:quantity] * 350)
end
orders = Order.arel_table

Order.
select(Arel.star).
select(Arel::Nodes::Sum.new(case_statements).as("total_price")).
group(orders[:user_id]).
having("total_price > ?", minimum_price).
order("total_price")



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL kết xuất tập lệnh .sql và nhập vào một trận derby apache

  2. Loại trường nào để lưu trữ mã thông báo facebook?

  3. Tệp PHP không thể nhập một số phần mã

  4. PHP MYSQL Chèn dữ liệu bằng ngôn ngữ Ả Rập

  5. Tải lên nhiều hình ảnh với PHP chỉ lưu một đường dẫn tệp vào Cơ sở dữ liệu MySQL