We kunnen ROW_NUMBER
. gebruiken hier om te selecteren wat je wilt met prioriteiten:
WITH cte AS (
SELECT f.*, ROW_NUMBER() OVER (ORDER BY DECODE(ITEM_NO, 'A15354', 1,
'CURR_NOT_IN_TABLE', 2,
'GR0013', 3,
'GUOIUW', 4, 5)) rn
FROM fruit f
WHERE spoiled = 'Y'
)
SELECT ITEM_NAME
FROM cte
WHERE rn = 1;
Het idee hier is om een prioriteit van 1 tot 5 toe te kennen aan elk item dat verwend is. We gebruiken ROW_NUMBER
om een reeks te genereren die altijd begint met 1 als de hoogste beschikbare prioriteit.