SQL 개발자 자격증SQL 활용다중 컬럼 정렬·NULL난이도 2MCQ

SQL 개발자 자격증 다중 컬럼 정렬·NULL 기출문제 #20244

문제

다음 [T1] 테이블에 대하여 아래 SQL 문을 실행했을 때, 출력되는 데이터의 순서로 가장 적절한 것은? (Oracle 기준)

<T1>

COL1COL2COL3
A0012024-12-15110
A002NULL110
B0012024-12-01120
C0012024-12-20130
D0012024-12-03110

① D001, A001, A002, B001, C001 ② A001, A002, D001, B001, C001 ③ A002, A001, D001, C001, B001 ④ D001, A002, A001, B001, C001

정답

1

해설

정답: 1. 1차 정렬키 COL3 ASC 로 110 그룹(A001, A002, D001)이 먼저 오고, 그 안에서 2차 정렬키 COL2 ASC 로 12-03(D001) → 12-15(A001) → NULL(A002) 순으로 정렬된다(Oracle ASC 는 NULL 을 마지막에 둔다). 이어서 COL3 가 120 인 B001, 130 인 C001 이 온다.

오답 풀이

  • ①: 정답. COL3=110 그룹 내에서 COL2 오름차순(12-03, 12-15, NULL 후순위) → D001, A001, A002 순, 이어서 COL3 가 큰 B001, C001.
  • ②: COL3=110 그룹 안에서 COL2 가 가장 이른 12-03(D001)이 맨 앞에 와야 하는데 그룹의 맨 뒤에 놓여 COL2 ASC 순서와 어긋난다.
  • ③: NULL 인 A002 를 맨 앞에 두어 Oracle ASC 의 NULL 후순위 원칙과 어긋나고, 110 그룹 안에서도 12-15(A001) 가 12-03(D001) 보다 앞서며, COL3 이 120 인 B001 과 130 인 C001 의 순서까지 뒤바뀌었다.
  • ④: 같은 110 그룹 내에서 NULL(A002) 이 12-03(D001) 다음에 와 12-15(A001) 보다 앞서므로 COL2 ASC 순서와 어긋난다.

보충 개념 ORDER BY 는 앞쪽 키부터 우선 적용하고, 값이 같은 그룹 내에서만 다음 키로 정렬한다. Oracle 은 ASC 정렬 시 NULL 을 가장 큰 값처럼 취급해 맨 뒤(NULLS LAST), DESC 시 맨 앞(NULLS FIRST)에 둔다.

SQL 개발자 자격증 SQL 활용 다른 기출문제

SQL 개발자 자격증 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQL 개발자 자격증] 다중 컬럼 정렬·NULL SQL 활용 기출 #20244 | 문어CBT