我有一些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