Oracle
 sql >> база данни >  >> RDS >> Oracle

Правилно използване на COALESCE в клаузата WHERE

Можем да използваме ROW_NUMBER тук, за да изберете какво искате с приоритети:

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;

Идеята тук е да зададете приоритет от 1 до 5 за всеки артикул, който е развален. Използваме ROW_NUMBER за генериране на последователност, която винаги започва с 1, което е най-високият наличен приоритет.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 50 нюанса на изпит за сертифициране на база данни на Oracle

  2. Проблем при внедряването на JBPM 5.4 конзолна сървърна война на Websphere сървър на приложения с JPA2 функционален пакет за използване на база данни на oracle

  3. Въведение в PL/SQL пакетите в Oracle Database

  4. Актуализирайте резултатите от оператор SELECT

  5. Картографирането на разделени обекти води до неочаквани резултати с база данни на Oracle