Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment utiliser ROW_NUMBER() ?

Pour la première question, pourquoi ne pas simplement utiliser ?

SELECT COUNT(*) FROM myTable 

pour obtenir le décompte.

Et pour la deuxième question, la clé primaire de la ligne est ce qui doit être utilisé pour identifier une ligne particulière. N'essayez pas d'utiliser le numéro de ligne pour cela.

Si vous avez renvoyé Row_Number() dans votre requête principale,

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

Ensuite, lorsque vous souhaitez revenir 5 lignes en arrière, vous pouvez prendre le numéro de ligne actuel et utiliser la requête suivante pour déterminer la ligne avec currentrow -5

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