SQL Server中的多个子句,其中所有列都不等于零

时间:2017-02-27 18:24:42

标签: sql sql-server where-clause

参加SQL Server

中的示例表格
col1, col2, col3, col4
 id1, 0.00, 0.00, 0.00
 id2, 0.00, 1.00, 0.00
 id3, 5.55, 2.22, 0.00
 id4, 0.00, 0.00, 0.00
 id5, 1.11, 2.22, -3.33

我想实现一个WHERE子句,这样当col2,col3和col4中的所有值都等于零时,就会从结果中排除该行。

我尝试过以下WHERE条款 where col2!=0 and col3!=0 and col4!=0

这只返回id5行,当我所追求的是返回id2,id3和id5时。

我知道where子句是错误的,但不确定要尝试的其他内容。

我考虑过在列之间进行求和,但这是不可取的,因为小数可以向两个方向移动,即使所有值都填充,也可能在等于零的情况下

1 个答案:

答案 0 :(得分:5)

您的意图是:

where not (col2=0 and col3=0 and col4=0)

解释为所有不具有全部三个零的行。

where col2!=0 or col3!=0 or col4!=0

解释为至少有一列非零<​​/ em>的所有行。