Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come si usa ROW_NUMBER()?

Per la prima domanda, perché non usare semplicemente?

SELECT COUNT(*) FROM myTable 

per ottenere il conteggio.

E per la seconda domanda, la chiave primaria della riga è ciò che dovrebbe essere utilizzato per identificare una riga particolare. Non provare a utilizzare il numero di riga per questo.

Se hai restituito Row_Number() nella tua query principale,

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

Quindi, quando vuoi tornare indietro di 5 righe, puoi prendere il numero di riga corrente e utilizzare la query seguente per determinare la riga con riga corrente -5

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