aar*_*ona 1 sql sql-server null case-statement
鉴于:
以下Select语句:
select case NULL
when NULL then 0
else 1
end
Run Code Online (Sandbox Code Playgroud)
问题:
我希望这会返回0,但它返回1.什么给出?
一般来说,NULL不是你应该尝试比较相等的东西,这是case语句的作用.您可以使用"Is NULL"来测试它.没有期望NULL != NULL或那个NULL = NULL.这是一个不确定的,未定义的值,而不是一个常数.
- 在评论中包含问题 -
如果您在遇到NULL列时需要检索值,请尝试以下方法:
Case
When SomeColumn IS NULL
Then 0
Else 1
End
Run Code Online (Sandbox Code Playgroud)
我认为应该有用.就你原来的帖子而言:
Select Case NULL
When NULL then 0 // Checks for NULL = NULL
else 1 // NULL = NULL is not true (technically, undefined), else happens
end
Run Code Online (Sandbox Code Playgroud)
问题是您的Case select会自动尝试使用相等操作.这根本不适用于NULL.
| 归档时间: |
|
| 查看次数: |
3477 次 |
| 最近记录: |