SELECT ROWNUM, NOTICE.* FROM NOTICE WHERE ROWNUM BETWEEN 2 AND 10;하면
결과 값이 안나온다.
왜냐하면 ROWNUM은 컬럼이 아니기때문이다.
런타임 마다 1씩 증가시키는 로우이다 (가장 중요한 의미이다). 따라서 ROWNUM의 시스템은 1부터 출력하며 증가시키는데 WHERE절을 수행할때 TRUE이면 ROWNUM을 생성하고 1씩 증가시킨다 생각하면 된다.
예를들어
COLUMN | ROWNUM(WHRE절 수행) | 결과 |
1 | 1생성(BEWEEN 2 AND 10=TRUE???) | 2가 아니라 FALSE |
2 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
3 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
4 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
5 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
6 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
7 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
8 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
9 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
10 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
11 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
12 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
13 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
14 | 1생성(FALSE였기때문에 증가못함) | 2가 아니라 FALSE |
결과적으로 아무것도 출력안됨
내가 이해한 내용은 이렇다.
틀리면 지적 부탁드립니다.
'2022 > Oracle' 카테고리의 다른 글
Oracel-SQL VIEW만들기 (0) | 2021.12.29 |
---|---|
Oracle-SQL ROWNUM 작성법 (0) | 2021.12.28 |
ORACEL-SQL 줄 번호 붙이기 (0) | 2021.12.28 |
외부에서 Oracle DB접속 (0) | 2021.12.26 |
Oracle-UPDATE, DLETE, INSERT, SELECT(작성중) (0) | 2021.12.21 |