CS Student’s SAP&Tech Journey✨
[SAP] 인터널 테이블(Internal Table) (4) 테이블에서 데이터 수정, 삭제, 정렬하기 본문
SAP/인터널 테이블 Internal Table
[SAP] 인터널 테이블(Internal Table) (4) 테이블에서 데이터 수정, 삭제, 정렬하기
인포마틱 2025. 2. 7. 21:42SAP ABAP에서 데이터를 다룰 때 인터널 테이블(Internal Table, IT)은 필수적인 개념입니다.
인터널 테이블은 프로그램 실행 중 메모리에 저장되는 임시 데이터 테이블로, 대량의 데이터를 효과적으로 저장하고 조작하는 데 활용됩니다.
이번 글에서는 데이터 수정, 삭제, 정렬에 대해 상세히 알아보겠습니다.
인터널 테이블에 데이터 읽는 방법과 관련된 포스팅 보러가기⬇️
[ABAP] 인터널 테이블(Internal Table) (3) 테이블에서 데이터 읽기
SAP ABAP에서 데이터를 다룰 때 인터널 테이블(Internal Table, IT)은 필수적인 개념입니다.인터널 테이블은 프로그램 실행 중 메모리에 저장되는 임시 데이터 테이블로, 대량의 데이터를 효과적으로
informatik.tistory.com
1. 인터널 테이블에서 데이터 수정 (MODIFY TABLE)
✅ 특정 데이터 수정 (READ TABLE + MODIFY)
READ TABLE gt_flight INTO gw_flight WITH KEY carrid = 'AA'.
IF sy-subrc = 0. * 데이터가 존재하는 경우
gw_flight-percentage = '99.99'. * 값 변경
MODIFY TABLE gt_flight FROM gw_flight. * 수정된 데이터 반영
ENDIF.
📌 특징
- READ TABLE로 특정 데이터 검색 후 MODIFY로 반영
- sy-subrc를 활용해 데이터 존재 여부 체크
- MODIFY를 실행하면 기존 행이 업데이트됨
- READ TABLE 없이 MODIFY TABLE을 실행하면 원하는 행이 수정되지 않을 수도 있음
✅ LOOP를 활용한 여러 개 데이터 수정
LOOP AT gt_flight INTO gw_flight WHERE percentage < '50.00'.
gw_flight-percentage = '60.00'. * 특정 조건을 만족하는 데이터 수정
MODIFY TABLE gt_flight FROM gw_flight.
ENDLOOP.
📌 특징
- WHERE 조건을 사용해 여러 개의 데이터를 한 번에 수정 가능
- LOOP를 사용하면 반복적으로 MODIFY를 실행할 필요 없음
- MODIFY는 테이블을 수정할 때 성능이 저하될 수 있으므로 한 번만 실행하는 것이 효율적
2. 인터널 테이블에서 데이터 삭제 (DELETE TABLE)
✅ 특정 Key 값을 기준으로 삭제 (DELETE ... WHERE)
DELETE gt_flight WHERE carrid = 'AA'.
📌 특징
- 특정 조건을 만족하는 모든 데이터 삭제
- Standard, Sorted, Hashed Table 모두 사용 가능
- Hashed Table에서는 WHERE 조건이 필수 (Index 삭제 불가능)
✅ 특정 Index의 데이터 삭제 (DELETE ... INDEX)
DELETE gt_flight INDEX 3.
📌 특징
- 특정 위치(Index)에 있는 데이터 삭제 가능
- Standard Table에서만 사용 가능
✅LOOP를 활용한 여러 개의 데이터 삭제
LOOP AT gt_flight INTO gw_flight WHERE percentage < '50.00'.
DELETE gt_flight WHERE percentage < '50.00'.
ENDLOOP.
📌 특징
- WHERE 조건을 활용해 특정 값보다 작은 데이터 삭제
- 여러 개의 데이터를 한 번에 삭제 가능
- 반대로 역순(DESCENDING)으로 LOOP를 돌리면 안전하게 삭제 가능
- LOOP 내부에서 DELETE를 사용하면 데이터가 삭제되면서 Index가 변할 수 있음
3. 인터널 테이블 정렬 (SORT TABLE)
📌 기본적으로 Primary Key 기준으로 정렬됨
📌 정렬 방향을 ASCENDING(오름차순) / DESCENDING(내림차순) 지정 가능
📌 여러 개의 필드를 기준으로 정렬 가능
✅ 기본 정렬 (SORT 사용)
SORT gt_flight. " 기본 정렬 (Primary Key 기준)
📌 특징
- 기본 정렬 기준은 Primary Key
- 정렬 기준이 없으면 알파벳 순서 또는 숫자 순서대로 정렬됨
✅ 특정 필드를 기준으로 정렬
SORT gt_flight BY percentage.
📌 특징
- 특정 필드(percentage)를 기준으로 정렬 가능
- 기본값은 오름차순(ASCENDING)
✅ 내림차순 정렬 (DESCENDING)
SORT gt_flight BY percentage DESCENDING.
📌 특징
- DESCENDING을 사용하면 큰 값부터 작은 값 순서로 정렬됨
- 성능 최적화를 위해 Sorted Table을 사용하면 자동 정렬됨
✅ 여러 개의 필드를 기준으로 정렬
SORT gt_flight BY percentage DESCENDING carrid ASCENDING.
📌 특징
- percentage 기준으로 내림차순, 같은 값이면 carrid 기준으로 오름차순 정렬
🎯 정리: 데이터 수정, 삭제, 정렬 방법
방법 | 설명 | |
데이터 수정 | MODIFY TABLE | 특정 행을 찾아서 값을 변경 |
LOOP AT ... WHERE | 여러 개의 행을 조건에 맞춰 변경 | |
데이터 삭제 | DELETE ... WHERE | 특정 조건을 만족하는 행 삭제 |
DELETE ... INDEX | 특정 위치(Index)의 행 삭제 | |
데이터 정렬 | SORT TABLE | 기본 정렬 (Primary Key 기준) |
SORT ... BY 필드명 | 특정 필드 기준 정렬 | |
SORT ... BY 필드명 DESCENDING | 내림차순 정렬 |
'SAP > 인터널 테이블 Internal Table' 카테고리의 다른 글
[SAP] 인터널 테이블(Internal Table) (3) 테이블에서 데이터 읽기 (0) | 2025.02.07 |
---|---|
[SAP] 인터널 테이블(Internal Table) (2) 테이블에 데이터 삽입하기 (0) | 2025.02.07 |
[SAP] 인터널 테이블(Internal Table) (1) 테이블 선언, 생성하기 (0) | 2025.02.07 |