2017-02-27 48 views
1

以示例表中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子句是錯的,但不知道還有什麼其他的事情可以嘗試。

我想過做跨列的總和,但是這是不可取的,因爲小數可以在任何一個方向走,並可能會在關閉的機會等於零,即使所有的值填充

回答

4

什麼你打算是:

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

解釋爲不具有三個零所有行。

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

其解釋爲具有非零列中的至少一個的所有行。