2
특정 조건의 SLA 요일을 반환하려고합니다. 그러나 특정 조건에 대해 다른 데이터 형식을 반환해야합니다. 다음과 같이 현재 코드는 다음과 같습니다다른 데이터 형식의 사례 명세서
SELECT CASE
WHEN fourthlevel.case_type IN
('Complaint')
THEN
(SELECT COUNT (*)
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 COUNT (*)
FROM work_days1
WHERE work_days1.business_date >
fourthlevel.create_date
AND work_days1.business_date <=
COALESCE (fourthlevel.close_date,
SYSDATE))
END
AS sla_days
FROM fourthlevel
내가 어디 case_status = '취소'반환 'N/A'에 대한 보답하고 싶다. 나는 이것을 할 수 없다는 것을 알고 있지만 이해하기 쉽도록 코드를 포함 할 것이다.
SELECT CASE
WHEN fourthlevel.case_type IN ('Complaint')
THEN
(SELECT COUNT (*)
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 COUNT (*)
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
어떻게해야합니까?
고든 고마워! 그러나 코드가 null 및 varchar 솔루션 모두에 대해 정상적으로 생성되지만 sla 일은 이전과 동일하게 유지됩니다. case_type (Complaint, Inquiry)을보고있는 case 문이 case_status가 Canceled 인 경우를 덮어 쓰고 있다는 사실과 궁금해합니다. case 문을 실행하는 순서가 있습니까? 아니면 모두 simular입니까? – Heisenberg
거기에 case 문을 실행하는 순서가 있습니까? "위로"에서 "아래로"예 그래서 조심스럽게 순서, ELSE –
입력 해 주셔서 감사합니다. 나는 case_status 조건을 맨 위에 놓음으로써 나의 case 문을 재정렬했다. 내가 stackoverflow없이 잃게 될 것입니다! – Heisenberg