✅ 1. SELECT-OPTIONS란?

  • 사용자에게 여러 값, 범위, 조건을 입력 받을 수 있는 필드를 생성.
  • 하나의 필드로 다중 입력, 범위 입력, 제외 조건 등 다양한 입력을 받을 수 있음.
  • 기본적으로 내부 테이블 형태로 구성됨.

✅ 2. 내부 구조 (내부 테이블 필드)

SELECT-OPTIONS는 다음 네 가지 필드로 구성된 내부 테이블을 자동으로 생성함:

필드명 설명 예시
SIGN I(Include) or E(Exclude) I → 포함 / E → 제외
OPTION 조건 연산자 EQ, NE, BT, CP 등
LOW 비교 기준 값 (또는 범위의 시작) ‘19991213’
HIGH 범위 조건의 끝 ‘20010101’

✅ 3. 코드 흐름 요약

 
  • zemployees 테이블에서 모든 레코드를 조회하고,
  • DOB(생년월일)이 선택화면에서 사용자가 입력한 조건(my_dob) 에 포함되는지 확인.
  • 포함되면 WRITE로 출력.

✅ 4. 예제 시나리오

  1. 사용자가 선택화면에서 아무 값도 입력하지 않으면 my_dob 테이블은 비어있고, 모든 레코드가 출력됨.
  2. 사용자가 특정 날짜 (예: 19581202)를 입력하면 SIGN = I, OPTION = EQ, LOW = 19581202 값의 내부 테이블이 생성됨.
  3. 이 상태에서 zemployees-dob IN my_dob 조건이 만족하면 해당 레코드가 출력됨.
  4. Multiple Selection 버튼을 통해 다중 입력, 범위 입력, 제외 조건 입력 가능함.

예:

  • 포함 조건: EQ 19581202, EQ 19771213
  • 제외 조건: BT 19990101~20021220

✅ 5. IN 조건의 마법

IF zemployees-dob IN my_dob.
  • 이 한 줄로 모든 조건을 자동으로 평가해줌.
  • 내부적으로 SIGN, OPTION, LOW, HIGH를 순회하며 비교함.
  • 조건을 일일이 IF문으로 안 써도 되는 큰 장점이 있음.

🔍 결론

  • SELECT-OPTIONS는 복잡한 사용자 입력을 간편하게 처리할 수 있는 강력한 도구
  • 내부적으로 생성되는 구조를 이해하면, 이후 SELECT 조건이나 조건문 작성이 쉬워짐!.
  • IN 구문은 복잡한 필터링 로직을 아주 간단하게 만들어주는 핵심 포인트!

+ Recent posts