ROW_NUMBER
を使用できます ここで優先順位を付けて必要なものを選択します:
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;
ここでの考え方は、台無しにされたアイテムごとに1から5までの優先順位を割り当てることです。 ROW_NUMBER
を使用します 常に1が利用可能な最高の優先度で始まるシーケンスを生成します。