Oracle
 sql >> база данни >  >> RDS >> Oracle

В база данни на Oracle каква е разликата между 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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Клъстери за броене на SQL Oracle

  2. Oracle:SQL заявка, която връща редове само с числови стойности

  3. Обратно проектиране на модел на данни с помощта на Oracle SQL Developer

  4. Как да импортирам XML файл в Oracle SQL Developer?

  5. Заявка на Oracle за намиране на всички срещания на символ в низ