• 售前

  • 售后

热门帖子
入门百科

SQL 复合查询条件(AND,OR,NOT)对NULL值的处理处罚方法

[复制链接]
折失的誓言群 显示全部楼层 发表于 2021-10-26 12:56:54 |阅读模式 打印 上一主题 下一主题
NULL值影响查询条件的结果,而且结果很玄妙。   以下是SQL中AND,OR,NOT的真值表。
                                                表1    AND的真值表
TRUE

FALSE

NULL

TRUE

TRUE

FALSE

NULL

FALSE

FALSE

FALSE

FALSE

NULL

NULL

FALSE

NULL

                                              表2    OR的真值表
TRUE

FALSE

NULL

TRUE

TRUE

TRUE

TRUE

FALSE

TRUE

FALSE

NULL

NULL

TRUE

NULL

NULL

                                              表3    NOT的真值表
TRUE

FALSE

NULL

FALSE

TRUE

NULL

当两个以上的查询条件与AND、OR、NOT组合时,NOT的优先级最高,其次是AND,末了是OR。为了制止歧义和确保可移植性最好利用括号。
  A BETWEEN B AND C 等价于 (A>=B) AND (A<=C),因此根据真值表可以得出BETWEEN 子句中处理NULL值的规则。
  同样,A IN(B,C,D) 等价于 (A=B)OR(A=C)OR(A=D),  根据真值表,只要这三个表达式中有一个为NULL,结果返回肯定是NULL。
  因此,BETWEEN子句和IN子句并不增加SQL语句的表达能力。
SQL 中有NULL 值测试,即:字段 IS (NOT) NULL ,但它的返回结果只有两种环境:TRUE或者FALSE。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作