我有一些SQL,在这个问题中添加所有语句太多了,我试图改进以减少系统速度。PL/SQL Case语句 - IS NULL
在PL/SQL的一部分,有一个并存包含一个子句和NOT EXISTS条款。
这两个条款都包含案例陈述。在案件陈述的部分结束后,有一个IS NOT NULL或IS NULL陈述。使用PL/SQL多年以来,这是我第一次看到这种语法,并且我坦率地承认不理解它。整个AND Exists子句显示在下面,非常感谢您的帮助。
AND EXISTS (
SELECT Distinct PROJECTID
From Milestone_History MH,
Project_Milestone PM
Where MH.MilestoneId = PM.ID
AND MH.Projectid = PR.ID
AND ((UPPER(PM.Description) = 'FINAL BUILD INVOICE INSTRUCTIONS ISSUED') OR
(UPPER(PM.Description) = 'FEASIBILITY STUDY REQUIRED') OR
(UPPER(PM.Description) = 'PROJECT COMPLETE'))
AND (case when UPPER(PM.Description) = 'FEASIBILITY STUDY REQUIRED' then
Actual
End IS NOT NULL
AND
case
when UPPER(PM.Description) = 'PROJECT COMPLETE' then
MH.Actual
end IS NULL)
AND NOT EXISTS
(SELECT Distinct MH2.ProjectID
From Milestone_History MH2, Project_Milestone PM2
Where MH2.MilestoneId = PM2.ID
And MH2.ProjectID = MH.ProjectID
AND case
when UPPER(PM2.Description) = 'PROJECT COMPLETE' then -
MH2.Actual
end IS NOT NULL))
+1 GMTA :)我不知道是要删除我的,还是把它作为一个稍微不同的方式说出同样的话。 – 2013-05-14 17:12:47
@MarkBannister这里明确收敛的解释=) – 2013-05-15 07:40:19