rownum 질문이요. 1 6 3,082

by 웁스 [SQL Query] ROWNUM [2009.08.18 19:22:19]


 select rownum from emp


위의 쿼리에서 decode를 사용해 rownum 의 마지막 값이라면 조건 처리를 해주고 싶은데 방법이 있을까요??

아무리 생각해도 답이 없어보여서 혹시나 글 올려봅니다.

by 웅 [2009.08.18 22:58:26]
이런 식으로 처리가능할 것 같네요.
select rn
, decode(lead(rn) over (order by rn),null,'마지막값처리')
from (
select rownum rn
from emp
)

by 마농 [2009.08.19 08:14:32]
DECODE(rownum, MAX(rownum) OVER(), '마지막')

by 마농 [2009.08.19 08:15:31]
DECODE(rownum, COUNT(*) OVER(),'마지막')

by 웁스 [2009.08.19 09:40:41]
웅님, 마농님 답변감사합니다.
한가지 더 궁금한게 있는데 count(*) over() 함수가 오라클의 윈도우 함수라고 나와있는데 이 분석함수의 실행 순서가 궁금합니다...
대부분 아래와 같은 순으로 실행 계획을 잡는데 over() 는 결과 잡합에서 한 로우가 나왔을때 내부적으로 어떻게 어떻게 하는거 같은데 .. 잘 모르겠네요.ㅠㅠ
1. from / where 절이 처리
2. select 절이 실행
3. group by 절 실행
4. having 실행
5. order by 실행


by 마농 [2009.08.19 10:11:26]
쿼리실행순서를 잘못 알고 계시네요
1. from
2. where
3. group by
4. having
5. select
6. order by
분석함수는 select절과 함께 실행된다고 보시면 됩니다.

by 웁스 [2009.08.19 11:29:39]
앗..그렇군요..
마농님 답변 감사합니다.^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입