参加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子句是错误的,但不确定要尝试的其他内容。
我考虑过在列之间进行求和,但这是不可取的,因为小数可以向两个方向移动,即使所有值都填充,也可能在等于零的情况下
答案 0 :(得分:5)
您的意图是:
where not (col2=0 and col3=0 and col4=0)
解释为所有不具有全部三个零的行。
或
where col2!=0 or col3!=0 or col4!=0
将解释为至少有一列非零</ em>的所有行。