Função LEAD() do SQL Server

Funcao Lead Do Sql Server



Neste artigo, mostraremos os fundamentos do trabalho com a função lead() no SQL Server. Abordaremos o que a função faz, sua sintaxe e exemplos práticos de como usá-la.

Função de liderança do SQL Server

A função lead no SQL Server é uma função analítica que permite acessar dados de uma linha subsequente no mesmo conjunto de resultados sem uma junção automática.

A função permite acessar uma linha em um determinado deslocamento anterior à linha atual. Por exemplo, usando a função lead, você pode encontrar a linha imediatamente após a linha atual, a décima linha da linha atual, etc.







Essa função orienta os desenvolvedores de banco de dados a realizar comparações de linha sem tarefas complexas, como junção, uso de exibições, etc.



Sintaxe da função

O seguinte retrata a sintaxe da função lead() no SQL Server:



LEAD (escalar_expressão [, deslocamento], [padrão])
OVER ([partição_por_cláusula] pedido_por_cláusula)

A lista subseqüente é os argumentos suportados e sua funcionalidade:





  1. scalar_expression – este argumento denota o valor de retorno com base no deslocamento definido. Isso pode ser uma expressão de qualquer tipo que retorne um único valor. No entanto, o valor de scalar_expression não pode ser outra função analítica/janela.
  2. offset – isso define quantas linhas da posição da linha atual o valor foi obtido. Por padrão, a função buscará a linha imediatamente adjetivada para a linha atual. Da mesma forma, o valor do parâmetro offset não pode ser uma função analítica ou um número inteiro negativo.
  3. padrão – este parâmetro define o valor padrão se o valor de deslocamento fornecido estiver além do escopo da partição de destino. Por padrão, a função retornará NULL.
  4. PARTITION BY – a cláusula partition_by define as regras que dividem o conjunto de resultados em várias seções. A função é então aplicada a cada partição resultante.
  5. ORDER BY – define a ordem lógica na qual as linhas em cada partição são aplicadas.

A função retorna o tipo de dados definido na scalar_expression. Se o valor retornado for NULL, a função retornará NULL.

Dados de amostra

Vamos usar alguns bancos de dados de exemplo para ilustrar melhor como usar a função lead. Primeiro, use as consultas conforme mostrado abaixo:



DROP DATABASE IF EXISTS inventário;

CRIAR INVENTÁRIO DE BANCO DE DADOS;

USE inventário;

DROP TABLE IF EXISTS produtos;

CREATE TABLE produtos (
id int identidade chave primária não nula,
nome_do_produto varchar(100),
fabricante varchar(50),
quantidade int não nula,
preço int padrão 0,
bit em estoque
);
inserir em products(product_name, fabricante, quantidade, preço, in_stock)
valores ('Apple iPad Air', 'Apple', 100, 569,99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1),
('Sony Playstation 5', 'Sony', 500, 499,99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1),
('Apple AirPods Pro', 'Apple', 200, 199,99, 1),
('55' Class S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

A tabela resultante é a seguinte:

Exemplo 1 – Usando a função lead() do SQL Server em um conjunto de resultados

O exemplo abaixo usa a função lead() para retornar o preço do próximo produto.

selecionar
Nome do Produto,
fabricante,
quantidade,
preço,
chumbo(preço,
1) sobre (
ordem por quantidade)
a partir de
produtos;

Tabela resultante:

Como não há linha na última coluna, a função retorna NULL.

Exemplo 2 – Usando a função lead() do SQL Server em um conjunto de partições

Também podemos buscar o próximo produto em uma determinada partição. Por exemplo, podemos particionar os dados acima com base no fabricante e aplicar a função lead() em cada partição

Uma ilustração de exemplo é mostrada:

selecionar
Nome do Produto,
fabricante,
quantidade,
preço,
chumbo(preço,
1) sobre (
partição por fabricante
ordem por quantidade)
a partir de
produtos;

A consulta acima deve dividir as linhas com base no fabricante e buscar o próximo preço para os valores em cada partição.

Neste caso, existem três partições.

Conclusão

Nesta postagem, você entendeu os blocos de construção da função lead() no SQL Server. Você também aprendeu como usar a função lead() em um conjunto de resultados e partições.