【发布时间】:2010-12-04 09:43:48
【问题描述】:
我遇到了以下问题。
我有一张这样的桌子:
ID ID1 ID2 ID3 ID4 ID5
1 NULL NULL NULL NULL 1
2 NULL NULL NULL 2 NULL
3 NULL NULL NULL 2 1
4 3 NULL NULL 2 NULL
5 3 NULL NULL 2 1
6 NULL 5 NULL 2 NULL
我需要得到不同的行,它认为 NULL 等于任何值。对于这个例子,答案是:
ID ID1 ID2 ID3 ID4 ID5
5 3 NULL NULL 2 1
6 NULL 5 NULL 2 NULL
附:这里 ID 是主键,因此是唯一的。 ID1-ID5 - 任何整数。
提前致谢!
更新
说 null 等于任何数字我的意思是它被任何数字吸收。
【问题讨论】:
-
您的示例答案并没有真正遵循模式。
-
@rwilliams - 问题很好,理解它被提及 - NULL CAN TAKE ANY VALUES...
-
最好说null被任意数吸收
-
@StuffHappens:您能否解释一下原因为什么这两行是预期结果?
-
我们以第 1 行和第 3 行为例。它们的 ID5 相同,ID4 的唯一区别是第 3 行有一个数字,而第 1 行有空值。至于数字 absorbs null 我们得出结论,这些行的操作结果是第 3 行。依此类推。假设第 5 行吸收了第 3 行,因为它们的 ID4 和 ID5 相等,但第 5 行具有 id1 的数字值,而第 3 行没有。
标签: sql sql-server-2005 select distinct