Frage

Was ist der Unterschied zwischen ROWNUM und ROW_NUMBER ?

War es hilfreich?

Lösung

Rownum ist ein "Pseudocolumn", der jeder Zeile eine Nummer zuweist, die von einer Abfrage zurückgegeben wird:

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 ist eine analytische Funktion, die jeder Zeile gemäß ihrer Bestellung innerhalb einer Gruppe von Zeilen eine Nummer zuweist:

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

Andere Tipps

Aus einer kleinen Lektüre ist Rownum ein von Oracle automatisch einem Rowset zugewiesener Wert (vor der Bestellung durch Bewertung, also nicht je ORDER BY ROWNUM oder verwenden a WHERE ROWNUM < 10 mit einem ORDER BY).

ZEILENNUMMER() Scheint eine Funktion zum Zuweisen von Zeilennummern zu einem von einer Unterabfrage oder Partition zurückgegebenen Ergebniszahlen zu sein.

Neben den anderen in Antworten genannten Unterschieden sollten Sie auch die Leistung in Betracht ziehen. Hier gibt es einen nicht autoritativen, aber sehr interessanten Bericht, in dem verschiedene Paginierungsmittel verglichen werden, unter denen die Verwendung von ROWNUM verglichen mit ROW_NUMBER() OVER():

http://www.inf.unideb.hu/~gabora/pagination/results.html

Rownum ist ein Pseudocolumn, der jeder ausgewählten Abfrage hinzugefügt werden kann, um die zurückgegebenen Zeilen zu nummerieren (beginnend mit 1). Sie werden gemäß dem Zeitpunkt, an dem sie als Teil des Endergebnissatzes identifiziert wurden. (#Ref)

Zeilennummer ist eine Analytikfunktion, mit der die von der Abfrage zurückgegebenen Zeilen in einer von der Funktion row_number () vorgeschriebenen Bestellung verwendet werden können.

Rownum beginnt mit 1 .. Incastices nach dem Zustand bewertete die Ergebnisse zu true. Daher gibt Rownum> = 1 alle Zeilen in der Tabelle zurück

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top