Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie verwende ich ROW_NUMBER()?

Für die erste Frage, warum nicht einfach?

SELECT COUNT(*) FROM myTable 

um die Zählung zu erhalten.

Und für die zweite Frage ist der Primärschlüssel der Zeile das, was verwendet werden sollte, um eine bestimmte Zeile zu identifizieren. Versuchen Sie nicht, die Zeilennummer dafür zu verwenden.

Wenn Sie Row_Number() in Ihrer Hauptabfrage zurückgegeben haben,

SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User

Wenn Sie dann 5 Zeilen zurückgehen möchten, können Sie die aktuelle Zeilennummer nehmen und die folgende Abfrage verwenden, um die Zeile mit currentrow -5

zu bestimmen
SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
     FROM User ) us 
WHERE Row = CurrentRow - 5