RowNumber no SQL Server

Pessoas que tiveram o contato com o Oracle e já utilizaram a função que enumera as linhas de uma consulta (o RowNumber) percebem uma certa facilidade na utilização desta funcionalidade.
No entanto ao utilizar o SQL Server você se depara com essa necessidade de enumerar as linhas de sua consulta e você se questiona: Como fazer isso?

Este post tem o objetivo de apresentar 2 soluções para esta situação:

  1. Utilizando um tabela temporária com IDENTITY
  2. Utilizando a função ROW_NUMBER () OVER (ORDER BY NOME_DA_COLUNA)

Uma observação importante sobre a segunda solução é que a função funciona a partir do SQL Server 2005.

Inicialmente criaremos a tabela temporária:

Agora vamos adicionar algumas linhas para testar e vamos consulta-las:

O resultado ate o momento é:

SQL RowNumber Result

Ate o momento nos temos nosso ambiente para demonstrar nossa solução, então vamos aplicar a primeira solução:
Note que a tabela temporária é criada, então nos executamos a consulta na nossa tabela temporária. A numeração das linhas sera definida pelo comando ORDER BY.

O resultado é:

SQL RowNumber Result Identity

Com o segundo método não sera necessário criar a tabela temporária e numeração sera definida pelo comando ORDER BY.

O resultado será o mesmo do método anterior.

 

Para saber mais sobre Identity visite https://msdn.microsoft.com/pt-br/library/ms186775.aspx
Para saber mais sobre o Row_Number visite https://msdn.microsoft.com/pt-br/library/ms186734.aspx

 

Obrigado por ler este post.
Curta e compartilhe se se você gostou!

Gostaria de ver a versão inglesa deste post?
Clique na bandeira inglesa -> United-Kingdom

 

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios são marcados com *

 
Translate »