SQL Server 2012中具有Null值的Lead和Case

时间:2014-05-14 23:18:56

标签: sql-server case

这是我的表:

ID  Quantity    Item

1   23  10
2   45  10
3   45  10
4   23  10
5   87  10
6   100 NULL

这是我的问题:

SELECT ID, case lead(Item) over (order by ID) when null then 1
else 0 end as Test
FROM tblA

这是我的输出:

ID  Test

1   0
2   0
3   0
4   0
5   0
6   0

为什么最后一行输出是6和0而不是6和1?

此致

1 个答案:

答案 0 :(得分:2)

我相信它是因为你构造CASE语句的方式是针对null测试lead()函数的结果是否相等。而不是使用这样的结构:

case x when null then 1 else 0 end

试试这个:

case when x is null then 1 else 0 end