注意细节:SQL语句中的布尔表达式

我们写SQL语句有时希望SQL表达式能够返回TRUE或者FALSE,却常常忽略了第三个值UNKNOWN。由于不注意判断返回的值有时会导致错误的结果, UNKNOWNTRUEFALSEANDOR运算返回的结果有一些差异,来看一个小小的测试:

1AND操作

AND

TRUE

FALSE

UNK

TRUE

 

 

 

FALSE

 

 

 

UNK

 

 

 

2OR操作

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

参见:Microsoft SQL ISV Program Management Team

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-05-31 10:49 TerryLee 阅读(1339) 评论(1)  编辑 收藏 网摘 所属分类: [21]  数据库相关

  回复  引用    
#1楼 2006-07-31 17:33 | codefan [未注册用户]
大哥,那在什么情况下会返回unknown呢?




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-05-31 10:51 编辑过
Google站内搜索

相关文章:

相关链接: