在我的SQL查询中,我有条件:
WHERE
parentID = prj.parent_id
and mandator_fk = mandator_id
变量parentID
默认为null。
如果此变量为空,WHERE
条件应为parentID is null
,而不是像上面的查询(parentID = prj.parent_id
)。如果填充此变量,则WHERE
条件应为parentID = prj.parent_id
。
如何只使用一个SQL查询执行此操作?
这不起作用我知道,但这就像我需要的那样:
WHERE
CASE
WHEN parentID is null THEN parentID is null
ELSE
parentID = prj.parent_ID
END
and mandator_fk = mandator_id
TIA frgtv10
答案 0 :(得分:1)
似乎你想加入null,所以你需要先转换它们。试试这个:
where
NVL(parentId, 0) = NVL(prj.parent_id, 0)
and ...
答案 1 :(得分:1)
我不确定NVL()
函数是否可以移植,所以这是编写条件的另一种方法:
WHERE
( parentID = prj.parent_id
OR parentID IS NULL AND prj.parent_id IS NULL
)
AND mandator_fk = mandator_id