• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

ORDER BY, SELECT 실행 순서

21.05.18 16:01 작성 조회수 125

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

감사합니다.