注意细节:SQL语句中的布尔表达式
我们写SQL语句有时希望SQL表达式能够返回TRUE或者FALSE,却常常忽略了第三个值UNKNOWN。由于不注意判断返回的值有时会导致错误的结果, UNKNOWN与TRUE和FALSE做AND、OR运算返回的结果有一些差异,来看一个小小的测试:
1.AND操作
AND |
TRUE |
FALSE |
UNK |
TRUE |
|
|
|
FALSE |
|
|
|
UNK |
|
|
|
2.OR操作
OR |
TRUE |
FALSE |
UNK |
TRUE |
|
|
|
FALSE |
|
|
|
UNK |
|
|
|
如果你已经有了答案,不妨跟微软工程师们给出的答案对照一下吧:
AND |
TRUE |
FALSE |
UNK |
TRUE |
TRUE |
FALSE |
UNK |
FALSE |
FALSE |
FALSE |
FALSE |
UNK |
UNK |
FALSE |
UNK |
OR |
TRUE |
FALSE |
UNK |
TRUE |
TRUE |
TRUE |
TRUE |
FALSE |
TRUE |
FALSE |
UNK |
UNK |
TRUE |
UNK |
UNK |
支持TerryLee的创业产品Worktile
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
Worktile,新一代简单好用、体验极致的团队协同、项目管理工具,让你和你的团队随时随地一起工作。完全免费,现在就去了解一下吧。
https://worktile.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合终身会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步