반응형
ABAP SQL에서 FIELDS 절 단계에서 CASE 구문을 활용 할 수 있다.
SQL에서 CASE 를 수행하는것만으로 런타임을 줄일 수 있다.
⛏️목차
- ABAP SQL CASE 구조
- 예제 코드
ABAP SQL CASE 구조
기본적으로 SQL 구조는
SELECT <options>
FROM <data source>
FIELDS <field list>
WHERE <condition>
INTO <target>
로 정의 되어있을것이다. ( SAP HANA Cloud ABAP - Cloud ABAP SQL 문법 정리 포스팅 참고)
여기서 FIELDS 절 단계에서 CASE 구문을 활용 할 수 있다.
일반적인 ABAP에서의 CASE문과는 구조가 조금 다르다.
CASE ... WHEN ... THEN의 구조이며 마지막에 ENDCASE가 아닌 END로 끝나며 AS를 사용해 기존의 필드이름이나 새로운 필드 이름으로 지정해주면 된다.(기존 필드이름을 사용할 경우 해당 필드의 DataElemen에 따라 값이 변형(truncation)될 수 있다.)
ELSE 구문을 추가하여 지정한 CASE 조건에 부합하지 않을때도 컨트롤 가능하다.
SELECT ...
FIEDS CASE field
WHEN ... THEN ( ... )
WHEN ... THEN ( ... )
...
ELSE resultn
END AS new_field
INTO ...
THEN뒤에는 괄호를 열어 계산 필드를 추가할 수 있으며, 해당 괄호 안에는 SQL 함수가 오거나 &&(Concatnation)을 사용 하여 텍스트를 연결 할 수 있다.
예제 코드
SELECT FROM sbook
FIELDS
*&------------------------------------Exam 1---------------------------------*
CASE carrid
WHEN 'AA' THEN ( concat_with_space( carrid, connid, 1 ) )
END AS flight_code,
*&---------------------------------------------------------------------------*
fldate,
bookid,
customid,
*&------------------------------------Exam 2---------------------------------*
CASE custtype
WHEN 'P' THEN ( custtype && ' ' && 'is' && ' ' && 'Private Customer' )
WHEN 'B' THEN ( custtype && ' ' && 'is' && ' ' && 'Business Customer' )
ELSE ( 'It is Null Colum' )
END AS cust_name
*&---------------------------------------------------------------------------*
WHERE carrid = 'AA'
INTO TABLE @DATA(result).
cl_demo_output=>display( result ).
- 끝 -
반응형
'SAP ABAP' 카테고리의 다른 글
SAP HANA Core ABAP Skill - VALUE #( ) 정리 (0) | 2025.03.23 |
---|---|
SAP HANA Core ABAP Skill - IF 구문 연산자 정리 (0) | 2025.03.23 |
SAP HANA Core ABAP Skill - ABAP SQL 문법 정리 (0) | 2025.02.12 |
SAP ABAP - ALV Field Catalog 적용법 (0) | 2024.12.04 |
SAP ABAP - HTML(URL) Viewer 예제 (0) | 2024.12.02 |