Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como uso ROW_NUMBER()?


Para a primeira pergunta, por que não apenas usar?
SELECT COUNT(*) FROM myTable 

para obter a contagem.

E para a segunda pergunta, a chave primária da linha é o que deve ser usado para identificar uma determinada linha. Não tente usar o número da linha para isso.

Se você retornou Row_Number() em sua consulta principal,
SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3
FROM User

Então, quando você quiser voltar 5 linhas, poderá pegar o número da linha atual e usar a seguinte consulta para determinar a linha com currentrow -5
SELECT us.Id
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id
     FROM User ) us 
WHERE Row = CurrentRow - 5