inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[2026] 비전공자도 한 번에 합격하는 SQLD 올인원

null 값 정렬 위치

해결된 질문

199

szun

작성한 질문수 5

1

안녕하세요, 강의 수강중인 학생입니다.

정렬 과정에서 NULL 값이 있으면, 오름차순은 맨 아래로, 내림차순은 맨 위로

라고 교재에 작성되어 있는데, 문제 풀이에는 그 기준이 적용되는 것 같지 않아 정확하게 알고 싶습니다.

sql 빅데이터 데이터-엔지니어링 SQLD

답변 1

0

알고런 데이터코드 연구소

안녕하세요! 데이터코드 연구소입니다.

질문 남겨주셔서 감사합니다.

우선 오라클과 PostgreSQL 에서는 널값을 가장 큰 값으로 인식합니다. 그래서 오름차순에서는 맨 끝에 정렬하구요 내림 차순에서는 맨 앞에 정렬합니다.

  • Oracle, PostgreSQL 기본 동작:

    • ORDER BY column_name ASC: NULL 값이 가장 큰 값으로 간주되어 맨 마지막(아래)에 정렬됩니다.

    • ORDER BY column_name DESC: NULL 값이 가장 큰 값으로 간주되어 (내림차순에서는 큰 값이 먼저 오므로) 맨 처음(위)에 정렬됩니다.

 

반면에 SQL Server나 MySQL은 동작방식이 점 달라서요. 널값이 가장 작은 값으로 간주됩니다. 그래서 오라클과는 반대방향으로 정렬이 되어요.

  • SQL Server, MySQL 기본 동작:

    • ORDER BY column_name ASC: NULL 값이 가장 작은 값으로 간주되어 맨 처음(위)에 정렬됩니다.

    • ORDER BY column_name DESC: NULL 값이 가장 작은 값으로 간주되어 (내림차순에서는 작은 값이 나중에 오므로) 맨 마지막(아래)에 정렬됩니다.


교재는 오라클 기준이고, 또 대부분의 시험 문제도 오라클 기준으로 나오기 때문에 널값을 가장 큰 값으로 기억하시고 오름차순이면 제일 끝에, 내림 차순이면 제일 앞에 나오는 걸로 기억하시면 되겠습니다.

만약 널 값 정렬을 원하는 데로 만들고 싶다면 명시적인 정렬구문을 사용하면 됩니다.

  • 명시적 NULL 정렬 구문 사용: SQL에서는 NULLS FIRST 또는 NULLS LAST 옵션을 사용하여 NULL 값의 정렬 위치를 명시적으로 지정할 수 있습니다. 문제에서 이러한 구문이 사용되었다면 DBMS의 기본 동작과 관계없이 명시된 대로 NULL 값이 정렬됩니다. (이 구문은 SQL:2003 표준부터 포함되었으며, 대부분의 현대 DBMS에서 지원합니다.)

    • ORDER BY column_name ASC NULLS FIRST: 오름차순 정렬 시 NULL 값을 맨 처음에 위치시킵니다.

    • ORDER BY column_name ASC NULLS LAST: 오름차순 정렬 시 NULL 값을 맨 마지막에 위치시킵니다.

    • ORDER BY column_name DESC NULLS FIRST: 내림차순 정렬 시 NULL 값을 맨 처음에 위치시킵니다.

    • ORDER BY column_name DESC NULLS LAST: 내림차순 정렬 시 NULL 값을 맨 마지막에 위치시킵니다.


시험 한 방에 합격! 응원할게요. 감사합니다.

0

szun

교재의 문제에서는 널 값을 가장 큰 값으로 취급하지 않는 경우도 있어서 그러는데, 시험에서 답을 고를 때 어떤 기준으로 해야 하나요?

0

알고런 데이터코드 연구소

안녕하세요. 기본적으로 제가 드린 답변을 기준으로 하시면 됩니다.

그리고 교재의 문제 번호를 알려주시면 확인해볼게요. 감사합니다.

0

szun

order by 절 파트의 연습문제였습니다!

0

알고런 데이터코드 연구소

안녕하세요.

Order by 절 파트에 아래 문제가 있네요. 아래 문제의 정답 해설을 보면 2번이 정답으로 되어 있습니다. 문제에 오라클이라는 제약이 들어갔으면 더 명확했을 텐데, 교재가 오라클 베이스로 작성이 되어 있기 때문에 정답은 2번이 맞습니다. 오라클에서는 널을 가장 큰 값으로 인식하기 때문에, 오름차순 정렬에서 가장 큰 값이 맨 아래에 나온다라고 이해하시면 되겠습니다.


5. NULL 값을 정렬할 때 기본적으로 오름차순에서 NULL 값의 위치는 어디인가?
① 맨 위
② 맨 아래
③ 중간
④ 무작위

 

감사합니다.

0

szun

그럼 rank 함수로 순위를 부여하는 경우, null에는 어떤 기준으로 순위가 부여되나요? 이것도 '오라클에서 null은 가장 큰 값'이라는 기준을 따르나요?

제 3정규화 관련 질문

0

49

3

GROUP BY 절 문제 4번에서 집계함수가 반드시 포함? 필수?

1

63

2

Live SQL 스크립트 설치건

1

70

2

mac erwin 설치 관련

1

125

2

모바일 앱

1

53

1

sql기본 단원정리문제 57번과 58번 질문드립니다

1

144

2

이론공부

1

59

1

ERD Optional 질문

1

48

2

43페이지 4번 문제 질문드립니다

0

53

1

Part1 > Chapter2 단원정리문제

0

61

2

ORDER BY 자료 및 강의 내용에 문제가 있는 것 같은데, 체크 부탁드립니다.

1

75

2

도커 설치 오류

0

163

2

노랭이 기출

0

93

2

SQLD 자격증

0

97

1

Part 2 > Chapter 3 단원 정리 문제

0

84

2

문제에 문제가 있는 것 같습니다.

0

84

2

여기도 문제가 있는거 같습니다.

0

82

2

문제가 잘못된 것 같습니다.

0

68

2

오라클 콘테이너 설치 관련 문의

1

72

2

단원정리문제 오기 ?

1

69

2

ORA-12541 오류

0

826

4

단원 정리 문제(2) 중 6,7,8,12 질문

1

82

1

2가지 문제 발생

1

89

2

실행안됨

1

83

2