首页 > 解决方案 > Sql 逻辑运算符.. AND & OR 组合

问题描述

我有一个过滤条件如下的sql代码

Select * from TABLE A
Where Col1<>0
and(col2 is not null or col3 is not null)

请解释为什么当 col2 和 col3 上的记录都为 NULL 时,我在输出中看不到任何记录。

这个怎么评价??

标签: sql

解决方案


Col1 的空检查应该是第一个条件。如果 Col1 为 null,则使用值检查 null,例如 Col1 = 0 或 Col1 <> 0 将始终返回 false。下面是处理 Col1 中的空值的另一种方法。

Select * from TABLE A
Where isnull(Col1, 0) <> 0
and col2 is not null

推荐阅读