Tomáš Hubálek Blog: Bavte se přiměřeně

Reklama

Reklama

Článek

Analytické funkce LAG() a LEAD() v Oracle 8.1.7 a vyšším

Analytické funkce LAG() a LEAD() umožňují přistupovat k předchozím (LAG) a dalším (LEAD) řádkům v selectu.

<> Je to užitečné, pokud máte například tabulku transakcí a chcete najít jenom ty transakce, které nejsou následovány jejich undo transakcí.

Select pak může vypadat takto:

SELECT * FROM (
SELECT *, transactionCode
LEAD(transactionCode,1) over (order by lotId, eventId) nextTransactionCode
FROM m_event
WHERE transactionCode IN ('TRANSAKCE','UNDO-TRANSACKCE)
ORDER BY lotid, eventid
) WHERE transactionCode='TRANSAKCE' AND nextTransaction <> 'UNDO-TRANSAKCE'

Pěkný příklad najdete např. na http://www.adp-gmbh.ch/ora/sql/analytical/lag.html

Tomáš Hubálek - clock 13:45:40 - Čtvrtek, 15.07.04 - Oracle - Zobrazeno 2520x pencil permalink

Odkazy na článek

del.icio.us      

Reklama

Komentáře:

Pokud chcete, můžete použít tyto pseudo tagy:

Přidejte komentář:

Komentáře jsou schvalovány před publikováním / Comments must be approved before being published. Thank you!

Kontrola proti spamu/Spam control