Função ROW_NUMBER do SQL Server

Resumo: neste tutorial, você aprenderá a usar o SQL Server ROW_NUMBER() função para atribuir um inteiro sequencial a cada linha de um conjunto de resultados.

Introdução à função ROW_NUMBER () do SQL Server

A ROW_NUMBER() é uma função de janela que atribui um inteiro sequencial a cada linha dentro da partição de um conjunto de resultados. O número da linha começa com 1 para a primeira linha em cada partição.

O seguinte mostra a sintaxe da função ROW_NUMBER():

Vamos examine a sintaxe da função ROW_NUMBER() em detalhes.

PARTIÇÃO POR

O PARTITION BY cláusula divide o conjunto de resultados em partições (outro termo para grupos de linhas). A função ROW_NUMBER() é aplicada a cada partição separadamente e reinicializada o número da linha para cada partição.

A cláusula PARTITION BY é opcional. Se você ignorá-lo, a função ROW_NUMBER() tratará todo o conjunto de resultados como uma única partição.

ORDER BY

O ORDER BY define a ordem lógica das linhas em cada partição do conjunto de resultados. A cláusula ORDER BY é obrigatória porque a função ROW_NUMBER() é sensível à ordem.

SQL Exemplos de servidor ROW_NUMBER ()

Usaremos a tabela sales.customers do banco de dados de amostra para demonstrar a função ROW_NUMBER() .

Usando o SQL Server ROW_NUMBER () função sobre um exemplo de conjunto de resultados

A instrução a seguir usa o ROW_NUMBER() para atribuir a cada linha do cliente um número sequencial:

Aqui está o parcial saída:

Neste exemplo, nós pulou a PARTITION BY cláusula, portanto, ROW_NUMBER() tratou todo o conjunto de resultados como uma única partição.

Usando SQL Servidor ROW_NUMBER () sobre exemplo de partições

O exemplo a seguir usa o ROW_NUMBER() função para atribuir um inteiro sequencial a cada cliente. Ele redefine o número quando a cidade muda:

A imagem a seguir mostra a saída parcial:

Neste exemplo, usamos a cláusula PARTITION BY para dividir os clientes em partições por cidade. O número da linha foi reinicializado quando a cidade mudou.

Usando o SQL Server ROW_NUMBER () para paginação

A função ROW_NUMBER() é útil para paginação em aplicações. Por exemplo, você pode exibir uma lista de clientes por página, em que cada página possui 10 linhas.

O exemplo a seguir usa ROW_NUMBER() para retornar clientes da linha 11 a 20, que é a segunda página:

A saída é a seguinte:

Neste exemplo:

  • Primeiro, o CTE usou a função ROW_NUMBER() para atribuir cada linha no conjunto de resultados é um inteiro sequencial.
  • Segundo, a consulta externa retornou as linhas da segunda página, que têm o número da linha entre 11 e 20.

Neste tutorial, você aprendeu como usar a função ROW_NUMBER() do SQL Server para atribuir um inteiro sequencial a cada linha dentro de uma partição de uma consulta.

Deixe uma resposta

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