用于空值的SQL复杂查询条件(和,或不)处理方法
null值影响查询条件的结果,结果非常微妙。以下是sql中的和、或不是的真值表。
表1和真值表
真的
错误的
无效的
真的
真的
错误的
无效的
错误的
错误的
错误的
错误的
无效的
无效的
错误的
空表2的真值表或
真的
错误的
无效的
真的
真的
真的
真的
错误的
真的
错误的
无效的
无效的
真的
无效的
空表3的真值表没有
真的
错误的
无效的
错误的
真的
无效的
当超过两个查询条件与OR和OR相结合时,优先级不是最高的,其次是和最后的。最后,为了避免歧义和确保可移植性,最好使用括号。
在b和c之间的等价于(a = b)和(a = C),因此可以根据真值表获得处理子句间空值的规则。
类似地,a(b,c,d)等于(a=b)或(a=c)或(a=d)。根据真值表,只要三个表达式中的一个为null,结果肯定是返回。
因此,从句和从句之间并不能增加SQL语句的表达能力。
在SQL中,存在一个空值测试,即字段是(不是)null,但它只返回两个实例:true或false。