Recuperando o próximo registro no Oracle PL/SQL

[ad#texto]

Já falamos sobre o comando LAG do PL/SQL, agora e se precisássemos utilizar os valores do próximo registro de uma instrução SELECT?

Semelhante ao LAG temos a função analítica LEAD no Oracle PL/SQL que tem a função de retornar o registro anterior sem precisarmos reprocessar tudo novamente. Veja a sintaxe:

lead ( expression [, offset [, DEFAULT] ] )
OVER ( [ query_partition_clause ] order_by_clause )

Veja um exemplo:

SELECT product_id, order_date,
lead (order_date,1) OVER (ORDER BY order_date) AS next_order_date
FROM orders;
 
PRODUCT_ID    ORDER_DATE    NEXT_ORDER_DATE
1000        25/09/2007         26/09/2007
2000        26/09/2007         27/09/2007
1000        27/09/2007         28/09/2007
2000        28/09/2007         29/09/2007
2000        29/09/2007         30/09/2007
1000        30/09/2007         <NULL>

O uso do LEAD é bem simples, assim como o LAG, agora é fácil trabalhar tanto o registro anterior como o próximo registro de um SELECT, bem útil quando vamos gerar arquivos texto utilizando quebras pela iteração dos registros.

Petter Rafael
Petter Rafael

Desenvolvedor Web atua com as tecnologias Java e PHP apoiadas pelos bancos de dados Oracle e MySQL. Além dos ambientes de desenvolvimento acima possuiu amplo conhecimento em servidores Apache/Tomcat, Photoshop, Arte & Foto, Flash e mais uma dezena de ferramentas e tecnologias emergentes. Atualmente colabora com o Viablog escrevendo sobre programação e tecnologia.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 323 outros assinantes

Busca

agosto 2020
DSTQQSS
 1
2345678
9101112131415
16171819202122
23242526272829
3031 

Categorias