Valores anteriores e seguintes
E se você quiser deslocar os valores em uma coluna em uma linha para cima ou para baixo? Você pode usar exatamente as mesmas etapas do exercício anterior, mas com duas novas funções, LEAD()
, para o próximo valor, e LAG()
, para o valor anterior. Portanto, você deve seguir estas etapas:
- Primeiro, crie partições
- Em seguida, ordene por uma determinada coluna
- Por fim, use as funções
LEAD()
e/ouLAG()
de acordo com suas necessidades
Este exercício faz parte do curso
Intermediário SQL Servidor
Instruções do exercício
Escreva uma consulta T-SQL para cada território:
Desloca os valores em
OrderDate
uma linha para baixo. Chame esta coluna dePreviousOrder
.Desloca os valores em
OrderDate
uma linha para cima. Chame esta coluna deNextOrder
.
Você precisará PARTITION BY o território
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
SELECT TerritoryName, OrderDate,
-- Specify the previous OrderDate in the window
___(OrderDate)
-- Over the window, partition by territory & order by order date
___(___ BY ___ ___ BY ___) AS PreviousOrder,
-- Specify the next OrderDate in the window
___(OrderDate)
-- Create the partitions and arrange the rows
___ AS NextOrder
FROM Orders