Chúng tôi có thể sử dụng ROW_NUMBER
tại đây để chọn những gì bạn muốn với mức độ ưu tiên:
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;
Ý tưởng ở đây là chỉ định mức độ ưu tiên từ 1 đến 5 cho mỗi mục bị hư hỏng. Chúng tôi sử dụng ROW_NUMBER
để tạo một chuỗi luôn bắt đầu với 1 là mức độ ưu tiên cao nhất hiện có.