SQL Server COALESCE位与int相比

时间:2013-08-05 23:13:35

标签: sql sql-server coalesce

我遇到的情况是我将一些数据类型传递给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值......它也不会返回任何内容!有人可以提出解决方案吗?谢谢。

1 个答案:

答案 0 :(得分:0)

where processed is null or processed = 0

是逻辑等效表达,我不知道为什么COALESCE不工作