我有一个有点像这样的查询:
SELECT ISNULL(MyColumn, "Not Applicable") As MyColumn
FROM MyTable
WHERE SomeOtherColumn =
(SELECT AValue
FROM SomeOtherTable
WHERE SomeConditionHolds
)
如果 MyColumn 的相关值有一个值,我会得到这个值,如果它为空,这会根据需要给我“不适用”。
但是,有时子查询会返回空集,在这种情况下,整个查询也会返回空集。我仍然希望它返回“不适用”。
我能做的最好的就是添加到上面
UNION
SELECT 'Not Applicable' AS MyColumn
WHERE NOT EXISTS
(SELECT AValue
FROM SomeOtherTable
WHERE SomeConditionHolds
)
但这感觉真的很笨拙且效率低下。我希望有人有更好的主意。