sql >> Database teknologi >  >> RDS >> Oracle

Brug af COALESCE korrekt i WHERE-klausulen

Vi kan bruge ROW_NUMBER her for at vælge, hvad du ønsker med prioriteter:

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;

Ideen her er at tildele en prioritet fra 1 til 5 for hver genstand, der er forkælet. Vi bruger ROW_NUMBER at generere en sekvens, der altid starter med 1 som den højest tilgængelige prioritet.



  1. MySQL TEKST vs BLOB vs CLOB

  2. MYSQL Inner Join if-erklæring

  3. Ret problem med SQL-databasegendannelse afventer adgang nægtet

  4. Opret en Database Mail Profile (SSMS)