Neste artigo, levaremos você pelos fundamentos de trabalhar 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 Lead SQL Server
A função principal no SQL Server é uma função analítica que permite acessar dados de uma linha subsequente no mesmo conjunto de resultados sem uma auto-joia.
A função permite acessar uma linha em um determinado deslocamento anterior à linha atual. Por exemplo, usando a função principal, você pode encontrar a linha imediatamente após a linha atual, a 10ª linha da linha atual, etc.
Esta função leva os desenvolvedores de banco de dados a realizar comparações de linha sem tarefas complexas, como ingressar, usando visualizações, etc.
Função Sintaxe
A seguir, retrata a sintaxe da função Lead () no SQL Server:
Lead (Scalar_expression [, Offset], [padrão])
Sobre ([partition_by_clause] order_by_clause)
A lista subsequente são os argumentos suportados e sua funcionalidade:
- escalar_expression - Este argumento indica o valor de retorno com base no deslocamento definido. Esta pode ser uma expressão de qualquer tipo que retorne um único valor. No entanto, o valor do escalar_expression não pode ser outra função analítica/janela.
- Offset - isso define quantas linhas da posição atual da linha o valor obtido. Por padrão, a função buscará a linha imediatamente adjetiva para a linha atual. Da mesma forma, o valor do parâmetro de deslocamento não pode ser uma função analítica ou um número inteiro negativo.
- 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á nulo.
- Partição por - a cláusula partition_by define as regras que dividem o resultado definido em várias seções. A função é então aplicada a cada partição resultante.
- Ordem por - isso define a ordem lógica em que as linhas em cada partição são aplicadas.
A função retorna o tipo de dados definido no Scalar_expression. Se o valor retornado for nulo, a função retornará nulo.
Dados de amostra
Vamos usar alguns bancos de dados de amostra para ilustrar melhor como usar a função principal. Primeiro, use as consultas como mostrado abaixo:
Soltar banco de dados se existir inventário;
Criar inventário de banco de dados;
Use inventário;
Soltar a tabela se existir produtos;
Crie produtos de tabela (
Id int identidade chave primária não nula,
Product_name Varchar (100),
Fabricante Varchar (50),
quantidade não nula,
Preço int padrão 0,
In_stock Bit
);
Insira em produtos (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, 199.99, 1),
('55 "Classe 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 é como mostrado:
Exemplo 1 - Usando a função SQL Server Lead () em um conjunto de resultados
O exemplo abaixo usa a função Lead () para retornar o preço do próximo produto.
Selecione
Nome do Produto,
fabricante,
quantidade,
preço,
chumbo (preço,
1) sobre (
ordem por quantidade)
de
produtos;
Tabela resultante:
Como não há linha da última coluna, a função retorna nulo.
Exemplo 2 - Usando a função SQL Server Lead () 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
Um exemplo de ilustração é como mostrado:
Selecione
Nome do Produto,
fabricante,
quantidade,
preço,
chumbo (preço,
1) sobre (
Partição pelo fabricante
ordem por quantidade)
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.
Nesse 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 a usar a função Lead () em um conjunto de resultados e partição.