[SQL 2012] Funções LEAD e LAG
Neste post irei apresentar mais 2 novas funções
    Neste post irei apresentar mais 2 novas funções do SQL 2012, LEAD e LAG, que fazem parte das Analytic Functions.
        LEAD - A function LEAD é utilizada para ler o valor da próxima linha. Quando a próxima linha não existir retorna NULL.
        LAG - A function LAG é similar a function LEAD, porém ao invés de retornar o próximo valor ela retorna o valor anterior.
        Isto é um pedido antigo de desenvolvedores, desde o surgimento da cláusula OVER.
        Vamos ver na prática. Criaremos uma tabela onde armazena a cidade e a localização dela em relação a BrasÃlia.
CREATE TABLE Cidade
(
  NomeCidade varchar(50),
  LocalizacaoKM int
)
GO
Insert into Cidade values('BrasÃlia',0), ('Cristalina',132), ('Paracatu',239), ('Três Marias',474), ('Belo Horizonte',742), ('Governador Valadares',1064)
GO
Usando a função LEAD vamos ver os trechos da viagem
SELECT NomeCidade, LocalizacaoKM Inicial, LEAD(LocalizacaoKM) OVER(ORDER BY LocalizacaoKM) As Final
FROM Cidade
ORDER BY LocalizacaoKM
Agora vamos usar a função LAG para ver a volta
SELECT NomeCidade, LocalizacaoKM Inicial, LAG(LocalizacaoKM) OVER(ORDER BY LocalizacaoKM) As Final
FROM Cidade
order by LocalizacaoKM desc

        Isto é possÃvel porque o SQL 2012 armazena a linha anterior/posterior na memória.
        Nas versões anteriores era possÃvel, porém tinha que usar self joins trabalhosos.
        A função também aceita outros parâmetros como um valor default quando retornar NULL, e você pode especificar quantas linhas ele deseja saltar para frente ou para trás.
Related articles
SQL Update using Try Catch
Na prática com exemplo real
Comando SQL Update usando Try Catch
Na prática e no database
SELECT Format Date Time for many countries
It is a good tip to use day by day
Membership $2.99/mo
✓ Full articles Subscribe ✓ Write forums ✓ Access podcast ✓ Full jobs opportunities ✓ Access eBooks ✓ Access magazine ✓ Access videos |
Free
✓ Open articles ✓ Read forums ✓ Access podcast x Full jobs opportunities x Access eBooks x Access magazine x Access videos |