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
운영게시판
최근게시물
CUBRID Q&A 412 게시물 읽기
No. 412
Q.최근 5개만 출력..
작성자
가야스톰
작성일
2007-07-26 06:38
조회수
3,480

DB에서 데이터를 5개만 가져오고 싶은데요..

 

현재

 

select num,name from board where rownum between 0 and 5 order by num desc

 

이렇게 하였는데 0번째줄부터 5개만 가져오고있습니다.

근데전.. 제일 최근에 올라온 게시물을 5개 뽑아오고싶은데요

어떻게 해야되는지 모르겠어요..

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

안녕하세요.

rownum 은 order by 가 수행되기 전에 수행되므로 원하는 결과와 달라집니다. 정렬후 5개만 가져오시려면 rownum 은 제거하고 order by num desc for orderby_num() between 1 and 5 와 같이 하시면 됩니다.

참고적으로 정렬을 할 경우 속도가 많이 떨어질수 있으므로 인덱스를 이용한 정렬 효과를 으용하시면 됩니다. 아울러 내림차순 정렬일 경우 일반 인덱스가 아닌 역방향(내림차순) 인덱스를 사용하면 됩니다. 방법은 아래와 같습니다.

 

1. 역방향인덱스(reverse index) 생성 : create index r_num board(num)

2. 역방향 인덱스 사용하도록 질의 수정. 조건이 있어야 하므로 조건 추가 및 해당 인덱스를 사용하도록 인덱스힌트(using index) 사용

    where num >= 0 and rownum between 1 and 5

     using index r_num(+)

 

>DB에서 데이터를 5개만 가져오고 싶은데요..

>

>현재

>

>select num,name from board where rownum between 0 and 5 order by num desc

>

>이렇게 하였는데 0번째줄부터 5개만 가져오고있습니다.

>근데전.. 제일 최근에 올라온 게시물을 5개 뽑아오고싶은데요

>어떻게 해야되는지 모르겠어요..

 

남재우님이 2007-07-26 08:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
415Q.unisql 5.2 버젼 사용시, odbc 관련 질문입니다. [1]
안성민
2007-07-27
3427
414Q.C Api 라이브러리는..? [1]
루나
2007-07-26
3349
413Q.한자는 어떻게 지원되는지.. [1]
한자
2007-07-26
3496
412Q.최근 5개만 출력.. [1]
가야스톰
2007-07-26
3480
411Q.CUBRID 7.x 온라인 오토백업관련질문입니다. [2]
이상천
2007-07-25
3821
410Q.cubrid.la 오류 사항 문의입니다. [1]
배상수
2007-07-25
3755
409Q.매니저에서 Refresh 기능 질문 [1]
조성배
2007-07-25
3488
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다