programing

Oracle 데이터베이스에서 ROWNUM과 ROW_NUMBER의 차이점은 무엇입니까?

i4 2023. 6. 25. 18:23
반응형

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

반응형