LAG no Oracle PL/SQL

[ad#texto]

O LAG é uma função analítica do PL/SQL Oracle e tem a finalidade de retornar o registro anterior da tabela. Veja a sintaxe:

lag ( expression [, offset [, default] ] )
over ( [ query_partition_clause ] order_by_clause )

Veja um exemplo:

SELECT ename,hiredate,sal,
LAG(sal, 1, 0)
OVER (ORDER BY hiredate) AS PrevSal
FROM emp
WHERE job = 'CLERK';

Ename  Hired               SAL      PREVSAL

--------  --------------- -------- ------------

SMITH      17-DEC-80       800       0

JAMES      03-DEC-81       950       800

MILLER     23-JAN-82       1300      950

ADAMS      12-JAN-83       1100      1300

O exemplo é bem simples e fácil de ser entendido, nele exibimos o salário (coluna SAL) e também exibimos o salário anterior (coluna PREVSAL).

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.