sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql CASE-sats - kan jag använda returvärdet för CASE i min SELECT?

använda

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.
)

Ovanstående gör precis vad du bad om... om du av någon anledning inte vill använda det, plugga in CASE påståenden in i beräkningen (alternativ 2 från din fråga).




  1. Hur kan vi i PostgreSQL se om varje index i en tabell är klustrade eller inte?

  2. Vilken unik nyckel träffas med mitt skär?

  3. Hämta RowId från QueryChangeDescription

  4. Använda MySQL C API - kontrollera framgången för att infoga rader med hjälp av förberedda satser