sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo uso ROW_NUMBER()?

Para la primera pregunta, ¿por qué no simplemente usar?

SELECT COUNT(*) FROM myTable 

para obtener el conteo.

Y para la segunda pregunta, la clave principal de la fila es lo que debe usarse para identificar una fila en particular. No intentes usar el número de fila para eso.

Si devolvió Row_Number() en su consulta principal,

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

Luego, cuando desee retroceder 5 filas, puede tomar el número de fila actual y usar la siguiente consulta para determinar la fila con fila actual -5

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