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

Postgresql CASE-Anweisung - kann ich den Rückgabewert des CASE in meinem SELECT verwenden?

verwenden

SELECT
productid, 
stylename,
final_original_price,
final_sale_price,
((final_original_price - final_sale_price) / final_original_price * 100) AS final_discount_percentage 
FROM
(
SELECT  p.productid, p.stylename,
CASE    WHEN (ppo.original_price IS NOT NULL) THEN ppo.original_price ELSE pp.original_price END AS final_original_price,
CASE    WHEN (ppo.original_price IS NOT NULL) THEN ppo.sale_price ELSE pp.sale_price END AS final_sale_price
FROM product p, ... etc.
)

Das obige macht genau das, worum Sie gebeten haben ... wenn Sie es aus irgendeinem Grund nicht verwenden möchten, dann fügen Sie den CASE hinzu Angaben in die Berechnung ein (Option 2 aus Ihrer Frage).