sql >> Database >  >> RDS >> Oracle

COALESCE correct gebruiken in de WHERE-clausule

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.



  1. MySQL:hoe laadgegevens lokaal aan zowel client- als serverzijde in te schakelen

  2. inconsistente datatypes:bij het retourneren van tabel van cursor in een pakketfunctie - ORACLE

  3. Hoe gebruik ik een alias in de where-clausule?

  4. mysql selecteer verschillende maar laatste rij