Oracle 데이터베이스에서 ROWNUM과 ROW_NUMBER의 차이점은 무엇입니까?
사이의 차이점은 무엇입니까?ROWNUM
그리고.ROW_NUMBER
?
ROWNUM은 쿼리에 의해 반환되는 각 행에 번호를 할당하는 "의사 열"입니다.
SQL> select rownum, ename, deptno
2 from emp;
ROWNUM ENAME DEPTNO
---------- ---------- ----------
1 SMITH 99
2 ALLEN 30
3 WARD 30
4 JONES 20
5 MARTIN 30
6 BLAKE 30
7 CLARK 10
8 SCOTT 20
9 KING 10
10 TURNER 30
11 FORD 20
12 MILLER 10
ROW_NUMBER는 행 그룹 내의 순서에 따라 각 행에 번호를 할당하는 분석 함수입니다.
SQL> select ename, deptno, row_number() over (partition by deptno order by ename) rn
2 from emp;
ENAME DEPTNO RN
---------- ---------- ----------
CLARK 10 1
KING 10 2
MILLER 10 3
FORD 20 1
JONES 20 2
SCOTT 20 3
ALLEN 30 1
BLAKE 30 2
MARTIN 30 3
TURNER 30 4
WARD 30 5
SMITH 99 1
조금 읽어보면 ROWNUM은 Oracle이 행 집합에 자동으로 할당하는 값입니다(평가를 통해 주문하기 전에). ORDER BY ROWNUM
또는 를 사용합니다.WHERE ROWNUM < 10
와 함께ORDER BY
).
ROW_NUMBER()는 하위 쿼리 또는 파티션에서 반환된 결과 집합에 행 번호를 할당하는 함수로 나타납니다.
답변에 언급된 다른 차이점 외에도 성능도 고려해야 합니다.다양한 페이지화 방법을 비교하는, 권위적이지 않지만 매우 흥미로운 보고서가 있는데, 그 중에서ROWNUM
와 비교하여ROW_NUMBER() OVER()
:
http://www.inf.unideb.hu/ ~comora/delination/delination.message
rownum은 임의의 선택 쿼리에 추가하여 반환되는 행에 번호를 매길 수 있는 유사 열입니다(1부터 시작).최종 결과 집합의 일부로 식별된 시점에 따라 순서가 지정됩니다.(#ref)
row_number는 row_number() 함수에 의해 지정된 순서대로 쿼리에 의해 반환되는 행에 번호를 매기는 데 사용할 수 있는 분석 함수입니다.
Rownum은 조건이 true로 평가된 후 1 ..증가로 시작합니다.따라서 rownum >=1은 테이블의 모든 행을 반환합니다.
언급URL : https://stackoverflow.com/questions/174595/in-an-oracle-database-what-is-the-difference-between-rownum-and-row-number
'programing' 카테고리의 다른 글
ID 열을 사용하여 가져오기 및 내보내기 마법사 (0) | 2023.06.25 |
---|---|
mongoddump를 mongodb 지도책과 함께 사용하기 (0) | 2023.06.25 |
\t와 \b는 무엇을 합니까? (0) | 2023.06.25 |
리포지토리 RestHandler 매핑 및 EndpointHandler 매핑을 사용하지 않도록 설정하는 방법은 무엇입니까? (0) | 2023.06.25 |
SQLPlus를 사용하여 Oracle 저장 프로시저를 보는 방법 (0) | 2023.06.25 |