[Dica] Funções que retornam valores de outras linhas

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
ricardorauber
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 96
Registrado em: Qua, 21 Jun 2006 11:33 pm
Localização: Canoas RS

LEAD

- Retorna o valor das próximas linhas de acordo com o parâmetro especificado.

Selecionar tudo

SQL> select * from ricardo_tmp;

         A
----------
         1
         2
         3
         4
         5

SQL> SELECT a, lead(a,1) over (ORDER BY a) prox FROM ricardo_tmp;

         A       PROX
---------- ----------
         1          2
         2          3
         3          4
         4          5
         5 

SQL> SELECT a, lead(a,2) over (ORDER BY a) prox FROM ricardo_tmp;

         A       PROX
---------- ----------
         1          3
         2          4
         3          5
         4 
         5 
LAG

- Função inversa da LEAD, retorna os valores anteriores

Selecionar tudo

SQL> select * from ricardo_tmp;

         A
----------
         1
         2
         3
         4
         5

SQL> SELECT a, lag(a,1) over (ORDER BY a) prox FROM ricardo_tmp;

         A       PROX
---------- ----------
         1 
         2          1
         3          2
         4          3
         5          4

SQL> SELECT a, lag(a,2) over (ORDER BY a) prox FROM ricardo_tmp;

         A       PROX
---------- ----------
         1 
         2 
         3          1
         4          2
         5          3
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes