溫馨提示×

oracle中rownum和row_number()有什么區別

小億
170
2023-08-18 01:40:57
欄目: 云計算

在Oracle中,ROWNUM和ROW_NUMBER()都是用于進行行號分配的函數,但它們有一些關鍵的區別。

  1. ROWNUM是一個偽列,它是在查詢結果返回之后才計算的。它表示返回結果集中的行號,而不是物理存儲中的行號。因此,如果在查詢中使用ROWNUM,它會在最終結果集中返回行號,而不是原始表中的行號。

例如,下面的查詢將返回一個包含行號的結果集,其中行號為1到10:

SELECT ROWNUM, column_name

FROM table_name

WHERE ROWNUM <= 10;

  1. ROW_NUMBER()是一個分析函數,它在查詢執行期間計算,并為結果集中的每一行分配一個唯一的行號。它可以用于根據指定的排序順序對結果集進行編號。

例如,下面的查詢將返回一個包含行號的結果集,其中行號是根據指定的排序順序分配的:

SELECT ROW_NUMBER() OVER (ORDER BY column_name), column_name

FROM table_name;

總結:

  • ROWNUM是在查詢結果返回之后計算的,而ROW_NUMBER()是在查詢執行期間計算的。

  • ROWNUM返回的是結果集中的行號,而ROW_NUMBER()返回的是根據指定排序順序分配的行號。

  • ROWNUM是一個偽列,而ROW_NUMBER()是一個分析函數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女