1
9
这是因为 3 valued logic . 在第一种情况下,“未知”不会计算为“真”,因此最终会出现在“其他”中。
在第二种情况下,您正在执行“真”或“未知”,计算结果为“真”。
|
2
1
这是由于ansi-sql标准和带有空值的比较运算符的行为造成的。每当要将值与可能为空的值进行比较时,需要使用is运算符显式检查值可能为空的情况。也可以在SQL Server中禁用ansi_nulls选项。 以下示例可以满足您的需要:
或者:
参考文献: |
3
1
从纯技术角度来看,第一条语句返回1的原因是因为ansi_nulls被设置为“on”,它将空值视为“unknown”,并遵循ISO标准。
若要按预期对值进行计算,请使用
当然,在现实生活中,
|
Community wiki · SQL语法新手 1 年前 |
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |