【发布时间】:2014-08-07 23:33:29
【问题描述】:
我正在尝试为我在案例陈述中进行的计算提供替代方案。目前它正在查看“close_date”以满足等式。我希望它能够先查看“close_date”,但如果它为空,则使用 SYSDATE。
我的代码如下:
SELECT CASE
WHEN fourthlevel.case_type IN
('Complaint')
THEN
(SELECT COUNT (*)
FROM work_days1
WHERE work_days1.business_date >
fourthlevel.correspond_date
AND work_days1.business_date <=
fourthlevel.close_date)
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 <=
fourthlevel.close_date)
END
AS sla_days
FROM fourthlevel
那么我应该在 where 子句中使用嵌套的 if-else 语句,还是使用其他 case 语句?
【问题讨论】:
-
coalesce(fourthlevel.close_date, SYSDATE).. 更多信息:stackoverflow.com/questions/950084/… -
nvl(close_date, sysdate)
标签: sql oracle if-statement case