SAP ABAP CDS View – CASE WHEN Statement

In ABAP CDS Views, the CASE WHEN statement is used for conditional logic, similar to SQL CASE. It helps derive calculated fields based on conditions.


🔹 Basic Syntax of CASE WHEN in CDS

define view ZDEMO_CDS as select from sflight {
key carrid,
key connid,
fldate,
price,
case
when price > 500 then 'Expensive'
when price > 200 then 'Moderate'
else 'Cheap'
end as price_category
}

🔹 Explanation:

✅ Assigns a category (Expensive, Moderate, Cheap) based on price. ✅ Works similarly to IF-ELSE logic in ABAP.


🔹 Using CASE with Calculations

define view ZFLIGHT_DISCOUNT as select from sflight {
key carrid,
key connid,
price,
case
when price > 500 then price * 0.9 // 10% discount
when price > 200 then price * 0.95 // 5% discount
else price
end as discounted_price
}

🔹 This applies dynamic price discounts based on conditions.


🔹 Using CASE with Boolean Flags

define view ZFLIGHT_STATUS as select from sflight {
key carrid,
key connid,
fldate,
case cancelled
when 'X' then 'Cancelled'
else 'Active'
end as flight_status
}

🔹 Converts binary flag (X/Space) into readable values.


🔹 Key Benefits of CASE WHEN in CDS

Simplifies conditional logic inside the CDS view. ✅ Improves performance by processing conditions at the database level. ✅ Enhances readability by converting flags into meaningful text.