수업을 마치고 집에 돌아와서 디버깅 작업을 통해 복습을 하던 중, 이상한 부분을 발견했다.

먼저 위와 같이 TYPES와 DATA를 선언해주고, 인터널 테이블인 gt_itab의 work area로 활용할 gs_itab도 선언해준 상황이다.

그리고 위와 같이 인터널 테이블에 들어갈 값으로 총 다섯 행을 추가해줬다.

그리고 디버깅을 돌렸는데, 위와 같이 결과가 나왔다. NON-UNIQUE KEY로 NUM만을 지정했으니 데이터가 들어갈 때 NUM만 신경쓸 것이고, 그렇다면 같은 NUM이라면 데이터가 들어간 순서대로 정렬될 줄 알았는데, NUM이 같은 3개의 '손흥민' 데이터를 보면 들어간 역순으로 정렬된 모습이다. 랜덤으로 INSERT 되는 것도 아니고 정확히 역순으로 INSERT 됐다.
그래서 강사님께 이 현상에 관련하여 질문을 드리니, 오직 NUM만을 바라보며 자기 자리를 찾기 때문에 이러한 현상이 나타나는 거라고 말씀해주셨다.
제일 마지막에 INSERT된 손흥민(010-444-3333) 데이터를 예로 들면, NUM 값이 0001, 0002인 데이터들을 보고서는 자기 자리가 아닌 거라는 것을 알고 넘어가는데 그후 0004를 보면 자기가 들어갈 자리라고 깨닫고 그냥 바로 INSERT 돼버리는 것이다. 그러다 보니 가장 늦게 선언한 데이터가 가장 위에 있게 되고, 결과적으로 역순으로 정렬되는 것이다.