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

Case Statement z innym typem danych

case instrukcja może zwrócić tylko jeden typ danych. Więc zamień liczby na ciągi:

SELECT CASE
  WHEN fourthlevel.case_type IN ('Complaint')
  THEN
     (SELECT cast(COUNT(*) as varchar2(255))
        FROM work_days1
       WHERE     work_days1.business_date > fourthlevel.cdate
             AND work_days1.business_date <=
                    COALESCE (fourthlevel.close_date, SYSDATE))
  WHEN fourthlevel.case_type IN ('Enquiry')
  THEN
     (SELECT cast(COUNT(*) as varchar2(255))
        FROM work_days1
       WHERE     work_days1.business_date > fourthlevel.create_date
             AND work_days1.business_date <=
                    COALESCE (fourthlevel.close_date, SYSDATE))
  WHEN fourthlevel.case_status = 'Cancelled'
  THEN
     'N/A'
END AS sla_days
FROM fourthlevel

Alternatywnie możesz zwrócić NULL gdy te dwa warunki nie pasują.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. praca domowa - próbujesz obliczyć wiele przystanków lotu między dwoma miastami?

  2. Oracle:jak pogrupować według zakresu?

  3. Jak wyświetlić rekord o najwyższej wartości w Oracle?

  4. Czy występuje problem z właściwościami JPA Entities, Oracle 10g i Calendar Type?

  5. Jak zamienić pierwsze trzy znaki ciągu w Oracle?