지금껏 sql문을 사용해본 결과
from으로 테이블에 접근 where절을 만족하는 로우 가지고 오고 select로 원하는 컬럼 값만 출력 후 order by절에 따라 정렬
조금 더 복잡할 경우 from 테이블 접근 where절 만족하는 로우 골라내고 group by로 데이터 값끼리 그룹화하고 select 결과 출력, 정렬
어떻게 처리되는 지 알면 oracle에서 순위에 따라 데이터를 추출하고 싶을 때 rownum을 어떻게 써야하는 지 알 수 있다. 저번에 알게 된 것중 하나는 where 절에 rownum=3, rownum>5같은 것은 원하는 결과를 얻지 못한다. 왜냐하면 rownum은 테이블에서 데이터를 출력하는 순서대로 번호가 메겨지기 때문이다. from의 테이블에서 하나의 로우를 가지고오면 rownum은 1이다. 그런데 where절을 만족하는 데이터만 최종 추출하기 때문에 rownum=3, rownum>5 등을 만족하는 로우는 존재할 수 없게된다. 말이 조금 헷갈리는데 rownum 이 2가 되려면, 일단 전에 하나의 로우가 추출되었어야 한다.
as you know SQL statement consist of several clauses, can you explain what order these clauses executed?
Yes, in a basic SQL SELECT statement, the order in which the clauses are executed is as follows: