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

Suchen Sie nach einem Modell mit einer bestimmten Preisspanne in verschiedenen Währungen

Sie können SQL CASE verwenden dafür:

SELECT price, currency,
       CASE WHEN currency='USD' THEN price * 1
            WHEN currency='RUB' THEN price * 65
            ELSE price
       END as final_price
FROM products
WHERE final_price BETWEEN 10 AND 100

Rails-Version:

Product.select("price, currency, CASE 
  WHEN currency='USD' THEN price * 1  
  WHEN currency='RUB' THEN price * 65 
  ELSE price END as final_price")
.where("final_price BETWEEN ? AND ?", 10, 100)