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 24087 게시물 읽기
No. 24087
mysql의 limit 기능을 오라클에서 구현법!!
작성자
초초보
작성일
2005-09-14 12:25
조회수
2,423

안녕하세요! ^^

2005년의 회원중 가입일기준 최근 10명만 추출 하는 질의를 mysql에서 아래와 같이 사영하였습니다.

select * from member where year='2005' order by inputdate desc limit 10

이부분을 오라클로 변경하려합니다.

검색해봤더니 오라클에는 limit라는 기능이 없더군요.

mysql과 동인한 스키마와 데이터를 가지고 있는 오라클에서는 어케 질의하여야 하는지요.

여러 고수님들이 가상의 "rnum between 10 and 20" 과 같이 하면 오류가 남니다.

고수님들의 조언 기다립니다.

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

가상의 rownum 을 실제 컬럼으로 만들면 됩니다...

외부에서 한번더 감싸주고 order by 해서 rnum 으로 가져오세요...

이경환(babocom)님이 2005-09-14 12:57에 작성한 댓글입니다.

select * from member where year='2005' order by inputdate desc limit 10

select * from member where year='2005' and rnum between 10 and 20 order by inputdate desc

 

이런식으로 하라는 말씀인가요?

초보인 제가 보기에도 어설프네요...^^ 조금 더 상세한 부연설명 부탁드립니다. 감싸다는말은 select문을 다시한번 감싸라는 말인가요? ^^*

NF너나타님이 2005-09-14 13:11에 작성한 댓글입니다.
이 댓글은 2005-09-14 13:38에 마지막으로 수정되었습니다. Edit

네...

select * from (

select rownum rnum,A.* from member A where A.year='2005' order by A.inputdate desc

) where rnum between 1 and 10

내부에 있는 select 결과셋은 가상의 테이블인 View 가 돼죠...

View 는 테이블과 마찬가지로 사용할 수 있습니다..

이때 주의하실점은 외부 select 또한 가상의 rownum 이 존재하니 외부에서 rownum 을 쓰면 안되고 내부에서 alias 한 rnum 을 사용해야 합니다.

rownum 과 *(모든컬럼) 을 함께 지정할 수 없군요... 내부에서 테이블에 alias 를 사용해 명시해야 하네요...

이경환(babocom)님이 2005-09-14 13:16에 작성한 댓글입니다.
이 댓글은 2005-09-14 13:24에 마지막으로 수정되었습니다.

SELECT   *
    FROM MEMBER a
   WHERE a.YEAR = '2005' AND 10 >= (SELECT COUNT (*)
                                      FROM MEMBER b
                                     WHERE b.inputdate > a.inputdate)
ORDER BY a.inputdate DESC

 

-- Oracle SQL Tuning 까페 http://cafe.daum.net/oraclesqltuning

장진주(zozogirl)님이 2005-09-14 13:41에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
24090PL/SQL 치환변수 사용하기 [2]
이지훈
2005-09-14
2404
24089PL/SQL 프로시저 생성 권한 관련 긴급질문입니다 [3]
초보돌진
2005-09-14
3018
24088다른 tablespace를 참조 하려고 하는데 어떻게 하죠?.. [2]
전용우
2005-09-14
1686
24087mysql의 limit 기능을 오라클에서 구현법!! [4]
초초보
2005-09-14
2423
24086CallableStatement의 resultSet에 셋하는 시간이 너무 오래걸립니다.
거시기
2005-09-14
894
24085rman backup 질문입니다. [1]
오라클
2005-09-14
1455
24084order by 도와주서요 [4]
도와주서요
2005-09-14
2524
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다