Estas dos funciones “LAG y LEAD” lo permiten sin tener que realizar una self join.
LAG() devuelve el valor de la anterior fila y LEAD() el valor de la siguiente fila.
SELECT DNI,
LEAD(DNI) OVER (ORDER BY DNI) POSTERIOR,
LAG(DNI) OVER (ORDER BY DNI) ANTERIOR
FROM PRUEBA;
DNI POSTERIOR ANTERIOR
0001 0002
0002 0003 0001
0003 0004 0002
0004 0005 0003
0005 0006 0004
0006 0007 0005