|
|
1
3
答案 默认情况下,对于SQL,空表示“未知”。所以,任何与“未知”的比较都是“未知”。 例如,如果一个陌生人站在鲍勃旁边,你想问一个问题,“陌生人的名字和鲍勃的名字一样吗?”。答案未知。 既然你在问,“返回任何值不是‘A’的记录”。当它到达这个空列时,SQL仍然说,“我不知道”。因为表达式的计算结果不是真的,所以不会返回该记录。 解决方案
将空值与常量进行比较的任何表达式都将始终为空,因此请使用
这会让你
解决方法 可以更改空值的默认行为:
|
|
2
3
要获取空行,请尝试:
试试这些:
全部返回零行 空=空始终为假 和 空=anythng始终为假 ,当测试空行时,where子句在(“a”)中为空,因此始终为假。 |
|
|
3
2
不能直接将空值与任何值进行比较。 尝试
|
|
|
4
2
用这种方法不能对空进行相等。 考虑这个
上面你会得到
对于您的查询,请尝试
|
|
|
5
2
试试这个,你会得到一个不同的答案:
您已经打开了ansi_nulls,因此它会相应地处理nulls。 |
|
|
sqlrobert · SQL-如何查找不包含特定字段值的一组记录 2 年前 |
|
|
Nick Fleetwood · 调度语法的LINQ查询 4 年前 |
|
|
Mateen Bagheri · 选择表的计数并选择其自身 4 年前 |
|
Java · 使用交叉应用同时显示两列 4 年前 |