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만 같으면 중복제거