반응형
ROWNUM은 Oracle에서 쿼리 결과에서 각 행에 고유한 번호를 부여하는 가상 컬럼이다. 이 컬럼은 쿼리 실행 순서에 따라 번호를 매기므로, 결과가 반환되는 순서에 따라 번호가 달라질 수 있다. ROWNUM은 주로 결과 집합에서 특정 행을 선택하거나 제한할 때 유용하게 사용된다.
사용법
- 기본 사용법: ROWNUM은 쿼리 결과에 번호를 붙이는데 사용된다. 예를 들어, ROWNUM을 사용해 첫 번째 10개의 행을 선택할 수 있다.
sql
SELECT ROWNUM, column1, column2 FROM your_table;
- 결과 제한: ROWNUM을 사용해 결과를 제한할 수 있다. 예를 들어, 첫 번째 5개의 행만 가져오려면 아래와 같이 쿼리를 작성할 수 있다.
sql
SELECT * FROM your_table WHERE ROWNUM <= 5;
- 정렬된 결과에서 ROWNUM 사용: ROWNUM은 쿼리의 실행 순서에 따라 번호가 매겨지기 때문에, ORDER BY 절을 사용한 후에 ROWNUM을 적용하려면 서브쿼리를 사용해야 한다.
sql
SELECT * FROM (SELECT * FROM your_table ORDER BY column1) WHERE ROWNUM <= 5;
이 예시에서는 your_table에서 column1을 기준으로 정렬한 후, 상위 5개의 행을 선택한다.
- ROWNUM을 이용한 페이징: 페이징을 구현하려면 서브쿼리와 ROWNUM을 조합해서 사용할 수 있다.
sql
SELECT * FROM ( SELECT your_table.*, ROWNUM rnum FROM your_table WHERE ROWNUM <= 20 ) WHERE rnum > 10;
이 쿼리는 your_table에서 11번째부터 20번째까지의 항목을 선택한다.
주의점
- ROWNUM은 결과가 반환되는 순서에 따라 번호가 부여되기 때문에, ORDER BY 절을 사용하기 전에 ROWNUM을 필터링하면 원하는 결과를 얻지 못할 수 있다. 이런 경우 서브쿼리를 사용해야 한다.
- ROWNUM은 가상 컬럼이기 때문에 실제 테이블의 컬럼은 아니며, 쿼리가 실행될 때마다 동적으로 생성된다.
반응형
'DB' 카테고리의 다른 글
[Database] SYSDBA 란? (0) | 2025.03.19 |
---|---|
[Database] Oracle, MySQL, PostgreSQL 암호화 사용 여부 확인 (0) | 2025.03.19 |
[Database] SPOOL 개념과 사용법 (0) | 2025.03.19 |
[Database] ORA-04030 원인,해결방법 (0) | 2025.03.19 |
[Database]Oracle XE TNS 오류 해결 방법 (TNS-12550, TNS-12560, TNS-00252) (0) | 2025.03.05 |