null 값 정렬 위치
안녕하세요, 강의 수강중인 학생입니다.
정렬 과정에서 NULL 값이 있으면, 오름차순은 맨 아래로, 내림차순은 맨 위로
라고 교재에 작성되어 있는데, 문제 풀이에는 그 기준이 적용되는 것 같지 않아 정확하게 알고 싶습니다.
답변 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
안녕하세요.
Order by 절 파트에 아래 문제가 있네요. 아래 문제의 정답 해설을 보면 2번이 정답으로 되어 있습니다. 문제에 오라클이라는 제약이 들어갔으면 더 명확했을 텐데, 교재가 오라클 베이스로 작성이 되어 있기 때문에 정답은 2번이 맞습니다. 오라클에서는 널을 가장 큰 값으로 인식하기 때문에, 오름차순 정렬에서 가장 큰 값이 맨 아래에 나온다라고 이해하시면 되겠습니다.
5. 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





