Como usar LEAD do SQL Server para pegar dados do próximo registro

Alan Nunes
Comunidade XP
2 min readFeb 25, 2022

--

Neste artigo irei mostrar de forma simples, como obter dados da linha seguinte utilizando a função lead do SQL Server.

Introdução

Com a função lead conseguimos acessar dados da linha seguinte a atual, por exemplo a linha 1 consegue obter dados da linha 2 e assim por diante. Lembrando que o acesso não é limitado a somente a próxima linha, você pode escolher um range maior, tal como obter dados da linha posterior à posterior.

Exemplo

Vamos criar uma fila de hospital para exemplificar o uso do LEAD, onde iremos listar o nome e posição das pessoas na fila e a próxima pessoa que será atendida.

Para isso, criaremos uma tabela chamada FilaHospital e inserir alguns registros nela.

Então teremos os seguintes dados de vendas em nossa tabela:

Tabela FilaHospital

Agora para mostrarmos ao lado a próxima pessoa a ser atendida, vamos usar a função LEAD:

E esse é o resultado:

Fila com função LEAD

Mas perceba que depois de João, não tem mais pessoas na fila e por padrão a função LEAD retorna nulo. Porém podemos colocar um outro valor padrão, sem ser nulo, veja o exemplo abaixo:

Fila com função LEAD sem default

Conclusão

Com a função LEAD conseguimos obter valores de registros posteriores e isso te ajudará a resolver problemas de forma simples, como esse que vimos no artigo. Além disso você pode aplicar a cláusula PARTITION BY e resolver ainda mais problemas! Incrível, não é?! Acesse meu artigo sobre partition by para aprender mais.

Bônus

Nós vimos como obter dados da linha posterior, mas e se quiséssemos obter os dados da linhas anterior, isso seria possível? Sim! Para isso podemos usar a função LAG, que possui a mesma sintaxe do LEAD.

Dê uma olhada na documentação oficial da Microsoft para saber mais sobre LEAD e LAG:

--

--