sql >> Databasteknik >  >> RDS >> Oracle

Ärendeutlåtande med olika datatyp

Ett case uttalande kan bara returnera en datatyp. Så konvertera siffrorna till strängar:

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

Alternativt kan du returnera NULL när de två villkoren inte matchar.




  1. Skapa HTML-tabell med SQL FOR XML

  2. Oracle Client och ODP.NET versionskompatibilitet

  3. Hur startar jag SQL Server-jobb från en lagrad procedur?

  4. Motsvarar strftid i Postgres