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

Обединяване на данни от 5 таблици без дублиращи се стойности и получаване на резултат с персонализиран статус в Oracle 10g

Можете да „класирате“ различни статуси въз основа на вашата логика и след това да изберете най-новия статус от тях. Можете да използвате логиката, подобна на тази по-долу, която отблъсква всички „отхвърлени“.

Уверете се, че сте включили всички други възможни състояния, ако се интересувате от реда за останалите.

with t1 as
( select 1 id, 'Waiver Requested'        status from dual union all
  select 1 id, 'Rejected'        status from dual union all
  select 2 id, 'Waiver Requested'        status from dual union all
  select 2 id, 'Waiver Requested'        status from dual union all
  select 3 id, 'Rejected'                status from dual union all
  select 3 id, 'Rejected'                status from dual union all
  select 4 id, 'Waiver Requested'        status from dual union all
  select 4 id, 'Cancelled'               status from dual
)
select id,
       status,
       max(status) KEEP (DENSE_RANK FIRST
                         order by (case when status ='Rejected' then -1
                                            else 1
                                       end) desc)
          over (partition by id) final_status
  from t1

        ID STATUS           FINAL_STATUS
---------- ---------------- ----------------
         1 Waiver Requested Waiver Requested
         1 Rejected         Waiver Requested
         2 Waiver Requested Waiver Requested
         2 Waiver Requested Waiver Requested
         3 Rejected         Rejected
         3 Rejected         Rejected
         4 Waiver Requested Waiver Requested
         4 Cancelled        Waiver Requested



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE - regexp_substr за връщане на нулеви стойности

  2. Стъпка по стъпка процес на надстройка за R12.2 надстройка, част -4 (прилагане на пакет за актуализация на версия 12.2.x)

  3. SQL заявка с CASE и групиране по

  4. Въведение в Native Dynamic SQL в Oracle Database

  5. oracle sql заявка за изброяване на всички дати от предходния месец