(ABAP 코드) New Open SQL - SELECT (CASE)
예제1)
* SELECT LIST에서 REM_SEATS를 계산하고, CASE문을 사용하여 PRICE_ADJ 필드를 채웠음.
SELECT CARRID, CONNID, FLDATE, PRICE, CURRENCY,
SEATSMAX - SEATSOCC AS REM_SEATS,
CASE
WHEN SEATSMAX - SEATSOCC >= 300 THEN ( PRICE * @GC_FIFTY_PERCENT )
WHEN SEATSMAX - SEATSOCC >= 200 THEN ( PRICE * @GC_THIRTY_PERCENT )
WHEN SEATSMAX - SEATSOCC >= 100 THEN ( PRICE * @GC_TWENTY_PERCENT )
ELSE ( PRICE * @GC_EIGHTY_PERCENT )
END AS PRICE_ADJ
FROM SFLIGHT
WHERE CARRID = @P_P_CARRID
AND CONNID IN @P_S_CONNID
ORDER BY FLDATE
INTO CORRESPONDING FIELDS OF TABLE @P_GT_SFLIGHT_PRICE.
예제2)
SELECT A~CARRID, A~CONNID, A~FLDATE, A~BOOKID, A~CUSTOMID, B~NAME, A~CLASS,
CASE
WHEN CLASS EQ 'Y' THEN 'Economy Class'
WHEN CLASS EQ 'C' THEN 'Business Class'
WHEN CLASS EQ 'F' THEN 'First Class'
END AS CLASS_NAME,
B~COUNTRY, B~EMAIL
INTO CORRESPONDING FIELDS OF TABLE @P_GT_BOOKING
FROM SBOOK AS A
INNER JOIN SCUSTOM AS B
ON A~CUSTOMID = B~ID
WHERE CARRID = @P_P_CARRID
AND CONNID IN @P_S_CONNID
ORDER BY FLDATE.