티스토리 뷰
ms sql 서버 에서는 top n 쿼리가 있어서 그냥 상위 몇개만 가져오고 싶을때
select top 5 * from tbl;
이런식으로 썼다.
하지만..
오라클에서 쓰려고 했는데 top n 쿼리가 없어서 어떻게 써야 하나 봤더니..
rownum 이라고 있긴 했다.
그러나 rownum을 쓸때는 조심해야 한다.
예를들어
select * from user where rownum<10 order by upt_dm desc;
이러면 업데이트 순으로 정렬하여 상위 9개를 가져오는것 처럼 보이지만 잘못 되었다.
왜냐하면 select 구문에서는 where 절이 먼저 실행되기 때문에 상위 9개 먼저 가져오고 최신순으로 정렬하는 것이다.
그래서 제대로 쓰려면
select * from(
select * from user order by upt_dm desc)
where rownum<10;
이렇게 써야 최신순으로 정렬된 상위 9개를 제대로 가져올 수 있다.
select top 5 * from tbl;
이런식으로 썼다.
하지만..
오라클에서 쓰려고 했는데 top n 쿼리가 없어서 어떻게 써야 하나 봤더니..
rownum 이라고 있긴 했다.
그러나 rownum을 쓸때는 조심해야 한다.
예를들어
select * from user where rownum<10 order by upt_dm desc;
이러면 업데이트 순으로 정렬하여 상위 9개를 가져오는것 처럼 보이지만 잘못 되었다.
왜냐하면 select 구문에서는 where 절이 먼저 실행되기 때문에 상위 9개 먼저 가져오고 최신순으로 정렬하는 것이다.
그래서 제대로 쓰려면
select * from(
select * from user order by upt_dm desc)
where rownum<10;
이렇게 써야 최신순으로 정렬된 상위 9개를 제대로 가져올 수 있다.
'티베로(Tibero) 오라클(Oracle)' 카테고리의 다른 글
select insert 쿼리 사용 시 ora-00913: too many values 에러 (0) | 2018.06.29 |
---|---|
오라클 select update (0) | 2018.01.25 |
오라클 컬럼 2개 where 절에서 삭제 쿼리 (0) | 2017.10.13 |
ora-00926: missing values keyword - merge into 사용시 (0) | 2017.09.29 |
[오라클] ORA-00947: not enough values (0) | 2017.09.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- C
- JDBC
- 파이썬
- 인포믹스
- 프로씨
- 자바 smtp
- XE3
- MySQL
- 스크래핑
- Python
- xe addon
- 오라클
- php
- XE
- ocajp
- xe애드온
- proc
- 자바
- KG
- EC
- C언어
- ocjap
- webix
- 포인터
- 플러터
- 라이믹스 모듈
- 이클립스
- 파싱
- esql
- 문자열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함