Case Statement with different data type

前端 未结 1 1434
无人及你
无人及你 2020-12-19 21:36

I am trying to return SLA days for particular conditions. However for a specific condition I want it to return a different data type. Current code is as follows:

<         


        
相关标签:
1条回答
  • 2020-12-19 22:12

    A case statement can only return one data type. So convert the numbers to strings:

    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
    

    Alternatively, you could return NULL when the two conditions do not match.

    0 讨论(0)
提交回复
热议问题