728x90
MySQL에 Limit라는 기능이 있는데, 오라클에는 없습니다.
하지만 이 기능을 오라클에서 쓰고 싶다면?
ROWNUM을 사용하면됩니다.
ROWNUM
특정 개수만큼 원하는 데이터를 추출하고 싶을 때 사용합니다.
[예제1]
데이터를 5개만 가져옴 in MySQL
SELECT * FROM demo_table LIMIT 5;
데이터를 5개 이하만큼 가져옴 in Oracle
SELECT * FROM demo_table WHERE ROWNUM <= 5;
[예제2]
데이터를 1개만 가져옴 in MySQL
SELECT * FROM demo_table LIMIT 1;
데이터를 1개만 가져옴 in Oracle
SELECT * FROM demo_table WHERE ROWNUM = 1;
오라클 ROWNUM + ODER BY 사용법
1. 서브쿼리
SELECT ROWNUM
, x.*
FROM ( SELECT a.*
FROM emp a
ORDER BY a.ename
) x
정렬된 서브쿼리 결과에 ROWNUM 을 매겨야 한다.
2. ROW_NUMBER() 함수
ROW_NUMBER() OVER(PARTITION BY [그룹핑할 컬럼] ORDER BY [정렬할 컬럼] [ASC/DESC])
ORDER BY 된 결과에 순번을 매길때에는 ROWNUM 보다 ROW_NUMBER() 함수가 더 편하다.
SELECT ROW_NUMBER() OVER(ORDER BY a.job, a.ename) row_num
, a.*
FROM emp a
ORDER BY a.job, a.ename
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[SQL] WHERE 1=1 의미 (0) | 2023.02.02 |
---|---|
[SQL] SQL 논리 연산자와 연산자 우선순위 (0) | 2023.02.01 |
[MyBatis] 마이바티스 세미콜론 ; 오류 (0) | 2023.01.30 |
[Oracle] SQL Developer 다운로드 와 SQL 워크시트 만들기 (0) | 2023.01.27 |
[Oracle] Oracle DB, SQL Developer 설치 후 테이블 만들기 (0) | 2022.09.15 |