database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 31532 게시물 읽기
No. 31532
order by 정렬 후 rownum 참조
작성자
리무진(limousinecar)
작성일
2007-08-03 13:21ⓒ
2007-08-03 13:22ⓜ
조회수
4,619

order by 정렬 후 rownum의 순번이 틀려지더군요

그래서 order by 정렬 후 서브 쿼리를 시키면 첫번째 rownum 밖에 인식을 못하네요

-------select order_TBL.*, rownum from (select * from board_TBL order by linenum desc) order_TBL

where 절에서

where rownum between 1 and 5 -> 잘 가져옴

where rownum between 3 and 5 -> 못 가져옴

where rownum between 1 and 10 -> 잘 가져옴

where rownum = 2 -> 못 가져옴

where rownum = 1 -> 잘 가져옴

어떻게 가져 와야 하나요?

참고 페이지라도 있으면 링크좀 부탁합니다.

이 글에 대한 댓글이 총 2건 있습니다.

ROWNUM은 가상컬럼으로 반드시 1을 포함한 조건으로 가져와야 합니다.


WHERE ROWNUM <= 5 처럼요...

중간부분만 가져오려면 컬럼을 실체화하여 한번 더 필터링해야 합니다.


SELECT *

FROM(

    SELECT A.*, ROWNUM AS rnum

    FROM A

    WHERE ROWNUM <= 5

    )

WHERE rnum BETWEEN 3 AND 5


건승하시길...수고하세요~~

성시현(finecomp)님이 2007-08-03 13:25에 작성한 댓글입니다.
이 댓글은 2007-08-03 13:26에 마지막으로 수정되었습니다.

ROWNUM

ROWNUM은 쿼리내에서 사용 가능한 가상컬럼입니다.

ROWNUM에는 숫자 1,2,3,4,...N의 값이 할당됩니다. 여기서 N은 ROWNUM과 함께 사용하는 로우의 수를 의미합니다. ROWNUM의 값은 ROW에 영구적으로 할당되지 않습니다. 테이블의 로우는 숫자와 연계되어 참조될 수 없습니다. 따라서 테이블에서 "ROW 5"를 요청할 수 있는 방법은 없습니다.


ROWNUM 값은 쿼리의 조건절이 처리되고 한 이후, 그리고 SORT, AGGREGATION 수행되기 이전에 할당됩니다.


도움이 되시기를...

우동원(travel71)님이 2007-08-13 13:54에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
31536오라클 SSL에 대해서 궁금한점이 있습니다.
binilpaper
2007-08-04
1615
31534누가 Linux 용 오라클 10g 패치좀받아주세요.. [2]
하얀눈
2007-08-03
4913
31533대량의 데이터를 비교 처리 할때 [1]
freegigs
2007-08-03
2682
31532order by 정렬 후 rownum 참조 [2]
리무진
2007-08-03
4619
31531함수만들때 다른곳 테이블 사용불가능하나요? [4]
!!
2007-08-03
1994
31529insert하는 테이블을 select하면 속도에 영향을 미치나요? [1]
오라클
2007-08-03
2170
31528WHERE절에서 동적으로 검색할 컬럼이 바뀔경우에는? [5]
잔대가리
2007-08-02
2898
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다