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 41700 게시물 읽기
No. 41700
가장최근에 입력된 로우 20개 가져오는 쿼리는 어떻게하나요?
작성자
asdf(akskdl)
작성일
2019-03-21 14:42
조회수
2,847

select * from TEST_TABLE OFFSET 1 ROWS  FETCH NEXT 20 ROWS ONLY;

 

위의 쿼리의경우 첫번째 데이터 부터 20개를 가져오라는 쿼리입니다.

 

가장 최근에 입력 된 20개를 가져오고 싶은데 어떻게 해야할까요?

 

오라클 12를 사용중입니다.

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

http://dataforum.kr/pages/viewpage.action?pageId=15335707
요즘에는 참고할 때가 많아서 정말 좋습니다. ㅎㅎㅎ 
======================================

모든 테이블을 만드실 때 create date, update date 는 필수로 들어가는게 좋습니다. 

보통 여기에 create id, update id 가 들어가도 좋죠.

이런건 어차피 DA 지침이 있을 것이라 생각하고, 

12c 에서는 이렇게 쓸 수 있지 않을까 합니다. 

select * from test 
order by 생성일 desc 
fetch first 20 rows only ; 


11g 까지는 아래처럼 하죠(페이징, Top-N 쿼리)  

select * from ( 
select * from TEST_TABLE 
where 조건   --> 인덱스 생성되어 있어야 함. 
order by 생성일 desc --> 결합 인덱스로 들어갈 경우 성능 향상이 되는 경우가 많음. 
) where rownum <= 20 

row_number over 

관련되서는 페이징 쿼리를 알아보시면 됩니다. 

"생성일" 컬럼이 없을 경우, rowid 을 order by 하여 가져오기도 합니다만, 
rowid 가 바뀔 경우도 있기 때문에 정확하지는 않습니다.  

lucky님이 2019-03-21 15:45에 작성한 댓글입니다.
이 댓글은 2019-03-28 10:41에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41703락(Lock)이 여러개일 경우 Kill 방법 문의드립니다. [2]
서준용
2019-03-28
3003
41702출퇴근 쿼리 해결이 잘안되어서 글올려 봅니다. [6]
정준민
2019-03-28
2648
41701index 생성 문의
마루아라
2019-03-22
2169
41700가장최근에 입력된 로우 20개 가져오는 쿼리는 어떻게하나요? [1]
asdf
2019-03-21
2847
41699instance client 설치 및 client pc 연결오류 [1]
하리보마이쪄
2019-03-12
2447
41697특정한 컬럼명이 있는 테이블을 전부 찾으려면??? [1]
신승익
2019-02-25
2610
41696연속된 시간끼리 그룹핑을 할수 있을까요? [1]
넵병
2019-02-22
2824
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다