[SAP]INTERNAL TABLE_삭제

이안·2024년 2월 19일

SAP

목록 보기
9/30
post-thumbnail

1. LOOP를 통한 라인 삭제

* 인터널테이블의 라인 삭제
DELETE TABLE ITAB [FROM WA]

CLEAR : GS_STUDENT.

LOOP AT GT_STUDENT INTO GS_STUDENT.
	IF GS_STUDENT-ZGENDER NE 'M'. "M이 아닌 라인 삭제
		DELETE TABLE GT_STUDENT FROM GS_STUDENT.
	ENDIF.
	
	IF SY-SUBRC = 0.
	ELSE.
		WRITE :/ '삭제실패'.
	ENDIF.
	
	CLEAR : GS_STUDENT.
ENDLOOP.

2. TABLE KEY를 이용해 라인 삭제

* KEY값 기준으로 인터널테이블의 라인 삭제
DELETE TABLE ITAB WITH TABLE KEY F1.

* INTERNAL TABLE 선언시
DATA : GT_STUDENT LIKE TABLE OF GS_STUDENT WITH NON-UNIQUE KEY ZGENDER.

DELETE TABLE GT_STUDENT WITH TABLE KEY ZGENDER = 'F'. "F인 라인 삭제

3. WHERE조건을 이용해 라인 삭제

* WHERE 조건절 기준으로 인터널테이블의 라인 삭제
DELETE ITAB WHERE FIELD = VALUE.

DELETE GT_STUDENT WHERE ZGENDER = 'F'. "F인 라인 삭제

4. INDEX를 이용해 라인 삭제

* INDEX를 이용하여 해당 라인의 값을 삭제
DELETE ITAB INDEX idx.

DELETE ITAB FROM N1 TO N2. "N1~N2라인 삭제
DELETE ITAB FROM N1. "N1번째 이후 모든 라인 삭제
DELETE ITAB TO N2. "첫번쨰부터 N2까지 삭제

DELETE GT_STUDENT INDEX 2. "INDEX 2번째 삭제
DELETE GT_STUDENT FROM 2 TO 3. "INDEX 2~3라인 삭제
DELETE GT_STUDENT FROM 2. "INDEX 2 이후 모든 라인 삭제
DELETE GT_STUDENT TO 2. "INDEX 1~2라인 삭제

5. ADJACENT DUPLICATE구문을 이용해 중복 라인 삭제

* 이 구문은 수행하기 전에 반드시 SORT구문을 통해 정렬해야 원하는 결과 수행 가능

DELETE ADJACENT DUPLICATE ENTRIES FROM ITAB.
DELETE ADJACENT DUPLICATE ENTRIES FROM ITAB COMPARING F1.

* COMPARING을 하지 않으면 TABLE KEY값이 중복된 데이터 삭제
* KEY값을 만약 선언하지 않은 경우 문자열의 선행 필드들이 DEFAULT KEY로 구성

SORT GT_STUDENT.

DELETE ADJACENT DUPLICATES FROM GT_STUDENT. "중복제거 (가장 마지막라인 삭제)
*** 모든 필드값이 다 같아야 중복제거 가능 ***

DELETE ADJACENT DUPLICATES FROM GT_STUDENT COMPARING ZCODE. "ZCODE만 같으면 중복제거

0개의 댓글