안녕하세요. 오늘은 RANGE TYPE에 대해 알아보는 시간을 갖도록 하겠습니다.
RANGE TYPE은 말그대로 특정 범위를 정해놓은 타입입니다.
LOW와 HIGH에는 조건 값이 들어가게 되고 SIGN, OPTION에는 LOW, HIGH에 지정한 조건 값의 범위와 상세조건을 지정하게 됩니다.
현업분들이나 이제 막 SAP를 시작하시는분들이 자주보는 화면에 항상 있는 조회조건을 간단히 예시로 들 수 있습니다.

이렇게 항공사라는 조회조건에 필드 2개를 열어놓고 시작 값과 끝 값 입력 필드가 있는 조회조건 형태를 자주 보셨죠??
이게 바로 RANGE TYPE의 인터널 테이블입니다.
왼쪽에 있는 입력필드가 LOW이고 오른쪽에 있는 입력 필드가 HIGH입니다.
그럼 RANGE TYPE에 대해 조금 더 자세히 알아볼까요??
1. SIGN
말그대로 SIGN입니다. 보통 SIGN이라고 하면 '기호', '신호' 를 뜻합니다.
즉, 기호가 +이냐 -이냐로 이해하시면 될 것같아요.

만약 LOW 값이 '0001'이고 HIGH 값이 '0010'이라고 가정해보겠습니다.
SIGN(부호)이 'I (Include) '이면 '0001'과 '0010'의 범위를 포함하는 내에서 값을 가져오겠다 라는 신호를 주는것이고
'E (Exclude)'이면 '0001'과 '0010'의 범위를 제외한 값에서 값을 가져오겠다라는 신호를 주는 것입니다.
즉, 기호를 'E'로 주면 쿼리에서 어떤 컬럼의 값을 가져올 때 '0001', '0010'인 값은 제외하겠다라는 뜻이죠.
단지 LOW와 HIGH에 지정한 값 사이의 범위인지 그 밖의 범위인지 범위만 지정한 상황이고 조건 값은 OPTION에서
자세히 주게 됩니다.
2. OPTION
범위를 정했으면 범위 내에서 조건을 주는게 OPTION입니다.

즉, SIGN = 'I'이고 LOW = '0001', HIGH = '0010'이라고 가정해보겠습니다.
'0001'과 '0010' 사이의 범위를 지정하기로 약속을 했는데 '0001'만 가져올 것이냐,
'0001'부터 '0010' 범위 전부를 가져올것이냐,
'0005'보다 큰 값을 가져올것이냐 등 범위에 대한 상세 조건을 지정하는게 OPTION입니다.
3. LOW와 HIGH
만약 숫자 형태라면 범위를 지정할 수 있죠?? 그럼 어떻게 범위 변수에 담아주면 될까요??
SIGN = 'I' , OPTION = 'BT'(Between), LOW = '0001', HIGH = '0010'으로 담아주면 됩니다.
그런데.. 만약 문자형태면 어떻게 할까요?? KRW, EUR사이에는 범위라고 할 것이 없습니다.
그럴 땐 범위 테이블변수에 값을 쌓아주면 됩니다.
SIGN에 I( Include ), OPTION에 EQ (Equal)을 주고 범위를 줄 수 없는 단일 값 3개를 지정하고 싶어 low에만
통화키 3개를 담아놓았습니다.

해당 범위 변수를 쿼리에서도 사용할 수 있습니다.
아래 링크를 달아놨으니 RANGE 타입을 어떻게 쿼리에서 사용하는지 참고하시면 좋을 것 같습니다.
https://arartexixi.tistory.com/16
SAP ABAP 기초 3-2 ) 쿼리 3 - WHERE절 2
오늘은 자주쓰는 WHERE 조건절에 대해 한번 더 보는 시간을 갖도록 하겠습니다. (실습코드) 첫번째, BETWEEN에 대해 알아보겠습니다. 즉, 옆에 설명을 써놓았듯이 'A' BETWEEN 'B'이면 A보다 크거나 같고
arartexixi.tistory.com
감사합니다.
'- SAP ABAP 구문' 카테고리의 다른 글
DO ~ ENDDO 구문 (구구단 출력) (0) | 2022.11.09 |
---|---|
SAP 시스템 변수 SY (SYST) (0) | 2022.11.09 |
CASE 문 (0) | 2022.11.08 |
금액에 통화 적용하여 출력하기( WRITE TO CURRENCY ) (0) | 2022.11.07 |
DOMAIN VALUE 가져오기 (0) | 2022.11.07 |