设置数据字段:创建一个包含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