設置數據字段:創建一個包含2個不同領域的基於條件SQL
我的數據庫有3個表,我需要的工作。我們稱前兩個PartList
和PartHist
。 PartList
包含所有在機器上的零件號(我們稱之爲ExpectedPart
)。 PartHist
包含所有已驗證在機器上的組件(VerifiedPart
)。兩個表都包含引用特定物理機器的MachineID
字段。
到目前爲止,我的查詢如下所示:
SELECT
ExpectedPart,
VerifiedPart
FROM
PartList List
LEFT OUTER JOIN PartHist Hist
ON
List.MachineID = Hist.MachineID
AND List.ExpectedPart = Hist.VerifiedPart
Where
List.MachineID = 'SomeID'
問題:
到目前爲止,這個查詢的工作非常漂亮,告訴哪些組件尚未得到驗證,作爲值的VerifiedPart
是NULL
,直到該部分已被驗證。除了在一個特定的部分,其中零件編號在PartList
,但其驗證存儲在另一個表(不是我的錯)。因此,即使在驗證之後,該部分的查詢也會返回NULL
。
這個第三個表格,我們稱之爲SpecialCase
,有MachineID
和VerifiedPartSP
字段。 PartHist
表中還有一個字段,如果零件是此特例零件的實例,則包含'Y',如果不是,則爲'N'。該字段將被稱爲SpYesNo
。
問題: 我可以在查詢中創建一個包含所有已驗證零件的字段嗎?我想在某種程度上有可能是使用,這樣的條件的方式...
IF (PartHist.SpYesNo = 'Y') THEN use SpecialCase.VerifiedPartSP as VerifiedPart
我使用的是IBM DB2數據庫
嘗試過這一點,但似乎我們的數據庫不支持UNION(或展櫃,我們的查詢經歷不會允許) – corbfon
CASE聲明立即生效。謝謝! – corbfon