本帖最後由 snoopy11hk 於 2015-12-7 23:54 編輯
如果oracle 咁都叫慢, 其他可以唔洗用.
奇雲 發表於 2015-12-7 17:04 
小弟不才, 現拋磚引玉
OPEN CURSOR FOR
SELECT "DATE", "ID", "Number"
FROM
(
SELECT "DATE", "ID", "Number",
LAG("DATE") OVER (ORDER BY "NUMBER" ASC) PREVIOUS_DATE,
LAG("ID") OVER (ORDER BY "NUMBER" ASC) PREVIOUS_ID,
LAG("NUMBER") OVER (ORDER BY "NUMBER" ASC) PREVIOUS_NUMBER
FROM tb1
WHERE "DATE" BETWEEN :START_DATE AND :END_DATE
)
WHERE LNNVL("DATE" = PREVIOUS_DATE) OR LNNVL("ID" = PREVIOUS_ID) OR LNNVL("NUMBER" =PREVIOUS_NUMBER)
接近(03-DEC-15 的這個日子)的出來, 再用024-645073去碰下024-645074, 呢句唔多明
大約係 lag function 補 CASE WHEN 就可以了 |