sql >> Databasteknik >  >> RDS >> Oracle

Använder COALESCE korrekt i WHERE-satsen

Vi kan använda ROW_NUMBER här för att välja vad du vill ha med prioriteringar:

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;

Tanken här är att tilldela en prioritet från 1 till 5 för varje föremål som är bortskämt. Vi använder ROW_NUMBER att generera en sekvens som alltid börjar med att 1 är den högsta tillgängliga prioriteten.



  1. varför PG::UniqueViolation:FEL:dubblettnyckelvärde bryter mot unik begränsning?

  2. valt värde få från db till rullgardinsmenyn välj rutan alternativ med php mysql fel

  3. Hur ändrar man tryckknappsetikettens text och lägger till en ny funktionalitet under körning? Oracle Forms

  4. Ändra utgångsdatum för Oracle-användarlösenord