반응형


전체
 레코드에서 순차적으로 5개를 꺼내려하는데 기준이 필요하다.
오라클에선 테이블에서 조회를   결과집합을 만들면서 ROWNUM 추가해준다.

->이게 ROWNUM이다!

1-5 사이의 ROWNUM을 구한다면?

6-10 사이의 ROWNUM을 구한다면?

->아무 데이터도 뜨지 않는다. 

2부터 시작해도 역시 것도 뜨지 않는다. 
ROWNUM은 결과집합을 만들때 먼저 생성되므로 1이 아닌 값이 들어가면 조건에 맞지 않는다고 판단해서 빼버리기 때문이다. 
때문에 ROWNUM을 활용하려면 ROWNUMDL 원래 존재한 녀석인것 처럼 미리 만들어서 활용해야 한다. 

 

*는 모든것을 출력하는 것을 의미하기에 다른것과 함께 쓸 수 없다. 

하지만 NOTICE.* 라고 쓰면 NOTICE의 모든것 이라고 한정할 수 있기에 다른 녀석이 들어갈 수 있는 여지가 생긴다. 

 

->여기서 첫번째 *은 더이상 NOTICE를 가르키지 않는다. NOTICE를 활용한 새로운 결과집합인 것이다. 

->1-5 의 결과는 나오지만 6-10의 결과는 안나온다. 그 이유는 두번째 ROWNUM은 첫번째 SELECT이 실항될 때 만들어지는 ROWNUM이기 때문이다. 

-> 그래서 안쪽 SELECT절의 ROWNUM 구분하기 위한 별칭이 필요하다.
이렇게 하면 6-10사이의 ROWNUM을 구할 수 있다.

+ Recent posts