Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Báo cáo trường hợp với kiểu dữ liệu khác nhau

Một case câu lệnh chỉ có thể trả về một kiểu dữ liệu. Vì vậy, hãy chuyển đổi các số thành chuỗi:

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

Ngoài ra, bạn có thể trả về NULL khi hai điều kiện không khớp nhau.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mã chuyên sâu I / O không đồng bộ chạy chậm hơn không đồng bộ, tại sao?

  2. Làm thế nào để chọn 100 hàng hàng đầu trong Oracle?

  3. ORA-00984:cột không được phép ở đây

  4. Cập nhật cột tập hợp bảng bằng để chọn nơi id khớp với bên ngoài truy vấn trong oracle

  5. V $ SQL_SHARED_CURSOR TOP_LEVEL_RPI_CURSOR