以下查询正确显示所有当前/潜在客户的记录,无论他/她是否下订单。但是,下面的YesNO
语句的SELECT
别名总是返回1,即使在某些情况下o.OrderID
为空(即,当透视客户尚未下订单时)。为什么?我认为下面的CASE声明是正确的(如this响应中所示)。我正在使用SQL Server 2012
。 注意:请注意,虽然OrderID是PK,但如果不符合连接条件,它将始终为OUTER JOIN中所有其他订单列的列。
SELECT c.customerID, o.OrderID, CASE When o.OrderID is NULL Then 0 Else 1 End as YesNO
FROM Customers c
LEFT JOIN Orders o
ON c.customerID = o.customerID
答案 0 :(得分:0)
尝试使用ISNULL
我很确定原因是因为当你将IS NULL与NULL进行比较时结果为NULL,因此为False,因此它为什么要评估你的ELSE 1
android_library