• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

쿼리문 순서 질문

21.12.17 11:04 작성 조회수 136

0

안녕하세요 강사님.
 
좀 쓸데없는 질문이긴 한데
쿼리문 실행 흐름이 대략 FROM WHERE GROUP BY HAVING SELECT ORDER BY
이런 식으로 실행된다고 배웠습니다.
그런데
 
SELECT TOP 1 * FROM batting WHERE teamID = 'BOS' ORDER BY HR DESC; --보스턴 팀 소속으로 단일 년도 최다 홈런을 친 사람의 정보
 
해당 쿼리문에서
ORDER 보다 SELECT가 먼저 실행된다면
아직 홈런 횟수를 내림차순 하기 이전의 테이블에서
최상단의 행을 가져오기 때문에
원래라면 의도하는 결과가 나오지 않는 것이 아닌지 궁금합니다.
 
감사합니다.
 

답변 1

답변을 작성해보세요.

2

느낌적으로 FROM - WHERE 순서로 실행된다는 것을 강조한 것이지만,
사실 SQL 구문은 원리가 굉장히 복잡하고 말씀주신 것처럼 다양한 상황이 있습니다.
기본적으로 SELECT를 해서 집합을 갖고 오고 ORDER BY 로 행을 정렬하는게 일반적이지만,
TOP1 등이 붙으면 정말 제일 좋은 후보 1개만 갖고 오면 되니,
전체를 갖고오고 정렬하는 대신 내부 알고리즘이 바뀔 수가 있겠죠.