P.281 ADJACENT DUPLICATE 공부를 하다보니,
이구문을 사용하기 전에 SORT구문으로 인터널 테이블을 정렬해야 한다고 하셨는데요.
아래 소스를 보면 SORT 구문을 사용한 것이 없는데...그래도 원하는 결과가 나왔어요.. 왜 그럴까요??
DATA: BEGIN OF gs_line,
carrid TYPE sflight-carrid,
connid type sflight-connid,
END OF gs_line.
DATA gt_itab LIKE TABLE OF gs_line WITH HEADER LINE.
SELECT carrid connid INTO CORRESPONDING FIELDS OF TABLE gt_itab
FROM sflight.
DELETE ADJACENT DUPLICATES FROM gt_itab.
LOOP at gt_itab.
WRITE : / gt_itab-carrid, gt_itab-connid.
ENDLOOP.
예제가 잘못되어있는것 같습니다.
위의 예에서는 데이터가 DB에서 이미 SORT되어 있다거나 또는 DB데이터들이 중복되는 것이 없어서
올바른 결과가 나왔을지 모르지만
아래와 같은 경우 올바른 결과가 나오지 않습니다.
필드1
필드2
AA
11
BB
12
AA
11
CC
23
이렇게 데이터가 DB에 존재하면 SORT하지 않으면 DELETE ADJACENT DUPLICATES FROM 구문이
먹히지 않는군요~ 즉 AA 11이 따로 인식이 되어 제거되지않고 보여지는 군요~
한번 확인해보세요~수고염~