Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Poprawne użycie COALESCE w klauzuli WHERE

Możemy użyć ROW_NUMBER tutaj, aby wybrać, co chcesz z priorytetami:

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;

Chodzi o to, aby każdemu przedmiotowi, który uległ zepsuciu, przypisać priorytet od 1 do 5. Używamy ROW_NUMBER aby wygenerować sekwencję zawsze zaczynającą się od 1 będącego najwyższym dostępnym priorytetem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zaktualizuj wiele kolumn na podstawie obliczeń procentowych w Oracle

  2. Sprawdź poprawność daty w Oracle bez użycia funkcji

  3. Zapisywanie UTL_FILE na komputerze lokalnym

  4. Dziwny wzorzec użycia pamięci w aplikacji C# Windows Form

  5. Utwórz tabelę w procedurze