인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김현정님의 프로필 이미지
김현정

작성한 질문수

[백문이불여일타] 데이터 분석을 위한 기초 SQL

ORDER BY 해커랭크 문제풀이 2 + 문자열을 자르는 SUBSTR() 함수

ORDER BY, SELECT 실행 순서

작성

·

205

1

제가 알기로는 실행 순서가

SELECT 된 뒤에 ORDER BY를 진행하는걸로 알고 있는데

SELECT에서 name만 선택해도 ORDER BY에 id가 사용 가능한가요?

답변 1

0

이보민님의 프로필 이미지
이보민
지식공유자

안녕하세요 김현정님

헷갈리실만한 부분이라고 생각이 되네요.

찾아본 결과 SELECT문에서 DISTINCT를 지정하거나, SQL문에 GROUP BY 절이 있거나 UNION 연산자가 있는 경우에는 ORDER BY 에서 사용하는 모든 컬럼의 이름이 SELECT 절에도 포함되어야 하구요.

그렇지 않을 경우에는 SELECT문에 포함되지 않는 데이터를 ORDER BY 절에서 사용이 가능한 것 같습니다.

이와 관련된 내용은 관계형 데이터베이스가 내부적으로 작동하는 원리와 관련이 있다고 하는데요. 데이터를 메모리에 올릴 때 행단위로 모든 컬럼을 가져오게 되므로 위와 같은 제약 조건 상에서는 SELECT 절에 없는 데이터라도 ORDER BY에서 접근이 가능한 것 같습니다.


관련하여 읽어보실만한 자료를 첨부드리니 추가로 궁금하신 점 있으시면 아래 내용들 확인해보시고 추가 질문 주시면 좋을 것 같습니다.

https://www.sqlservercentral.com/forums/topic/select-with-order-by-but-field-not-in-select-list

http://bysql.net/index.php?mid=W201102S&page=2&document_srl=19560

감사합니다.

김현정님의 프로필 이미지
김현정

작성한 질문수

질문하기