इसे हमेशा सरल रखें, सभी उपलब्ध Oracle अंतर्निहित सुविधाओं का उपयोग करें।
SELECT * FROM
(
SELECT FORMAT_NO, FORMAT_CODE, SEQ
, (CASE WHEN FORMAT_CODE = 'O' THEN LAG(seq, 1, 0) OVER (ORDER BY FORMAT_CODE) END) nn_seq
FROM
(
SELECT 1000 PRODUCT_NO, 1111 FORMAT_NO, 'P' FORMAT_CODE, 0 SEQ FROM dual
UNION
SELECT 1000, 1112, 'O', 0 FROM dual
UNION
SELECT 1000, 1113, 'H', 546 FROM dual
)
ORDER BY 2
)
WHERE FORMAT_CODE = 'O'
//
आउटपुट:1112 ओ 0 546
उपरोक्त क्वेरी में आपको पहले ऑर्डर करना होगा और फिर ऑर्डर और वांछित आउटपुट के आधार पर एलएजी () या लीड () में निर्मित ओरेकल का उपयोग करना होगा।