Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Trong cơ sở dữ liệu Oracle, sự khác biệt giữa ROWNUM và ROW_NUMBER là gì?

ROWNUM là "cột giả" chỉ định một số cho mỗi hàng được trả về bởi truy vấn:

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 là một hàm phân tích chỉ định một số cho mỗi hàng theo thứ tự của nó trong một nhóm hàng:

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. Chương trình PL / SQL để in chi tiết nhân viên

  2. Trả lại hàng có giá trị tối đa của một cột cho mỗi nhóm

  3. Chuỗi kết nối Oracle không có tệp tnsnames.ora

  4. Oracle Trước khi Chèn HOẶC Cập nhật Ví dụ về trình kích hoạt

  5. Hàm NUMTOYMINTERVAL () trong Oracle