我遇到的情况是我将一些数据类型传递给COALESCE。然后设置= 0以检查它是否等于0.问题是,这不起作用!
(请注意,我无权更改任何列的数据类型)
这就是我所拥有的:
SELECT Meters.ID, Consumption, Charge
FROM Data (nolock)
JOIN Meters
ON Data.MeterID = Meters.ID
WHERE COALESCE(Processed, 0) = 0
Processed背后的想法是,如果处理的数据应该是1,那么我不想再处理它们。
// Processed是Data表中类型为bit的列。我的联接是100%正确的,因为我运行它们没有Where并执行没有问题,问题是当我添加到那里!即使Processed列有1,0,NULL值......它也不会返回任何内容!有人可以提出解决方案吗?谢谢。
答案 0 :(得分:0)
where processed is null or processed = 0
是逻辑等效表达,我不知道为什么COALESCE不工作