본문 바로가기
SQL 문제 풀기/2. SQLD 기출 : 2024.3.01~2024.4.25

<SQLD 49> Order by 에 대한 기출문제

by HYEHYE_SON 2024. 4. 18.
728x90

매일 SQLD 기출 문제 풀기 챌린지


 


문제 49.

Oracle 환경에서 주어진 테이블을 아래의 결과와 같이 정렬하고자 할 때, SQL문의 빈칸에 들어갈 값을 작성하시오.

 

[TEST 49]

C1 C2
10 100
10 200
10 NULL
20 100
20 NULL
20 200

 

 

[RESULT]

C1 C2
10 200
10 100
10 NULL
20 200
20 100
20 NULL

 

[SQL]

SELECT C1, C2
    FROM  TEST49
    ORDER BY C1, C2 DESC (      );

 
답 : _______ 


해설해보기

■ NULL 값은 어떻게 정렬될까?
- ASC(오름차순) : NULL 값이 가장 마지막에 출력됩니다.
- DESC(내림차순) : NULL 값이 가장 위에 출력됩니다.


■ Order By 절에서 NULL 값 출력 2가지 옵션
1. NULLS LAST
 null 값을 맨 마지막에 출력(desc 사용 시)

2. NULLS FIRST
 null 값을 맨 앞에 출력(asc 사용 시)

 

따라서 DESC 하게 정렬된 C2 컬럼에서 

NULL 값을 가장 앞에 출력하기 위해서는 

ORDER BY절에서 NULLS LAST 옵션을 사용해줘야 합니다. 

 



직접 실행해보기

SELECT C1, C2
    FROM  TEST49
    ORDER BY C1, C2 DESC NULLS LAST;


관련 스크립트

CREATE TABLE TEST49 (
    C1 NUMBER,
    C2 NUMBER
);

INSERT INTO test49 (C1, C2) VALUES (10, 100);
INSERT INTO test49 (C1, C2) VALUES (10, 200);
INSERT INTO test49 (C1, C2) VALUES (10, NULL);
INSERT INTO test49 (C1, C2) VALUES (20, 100);
INSERT INTO test49 (C1, C2) VALUES (20, NULL);
INSERT INTO test49 (C1, C2) VALUES (20, 200);

 

반응형