2013-10-03 43 views
2

如何使用SQL來選擇全部或全部,遵循以下條件:如果任何元組具有值爲1的列,則它必須返回空值,但是如果所有值均爲0,則返回所有元組。SQL返回條件

+0

如果任何行有**任何**列,值爲1?或特定列? – Lamak

+0

桌子的結構是什麼?請包括所有相關欄目。 – Yuck

+0

如果您正在尋找一種通用的解決方案,無論表結構如何,您都必須使用動態SQL。 –

回答

3

你可以這樣說:

SELECT * 
FROM MyTable 
WHERE (SELECT COUNT(*) FROM MyTable t WHERE t.MyColumn=1)=0 

的條件計算爲真或假的所有行;如果其中有任何一行有1,則不會返回行。

+0

這只是檢查一列,當我認爲這個問題推斷有多列,所有這些列都需要檢查。 – Yuck

+0

@Yuck雖然OP的意圖不是從語句中清除,但可以用'OR t.MyOtherColumn = 1 OR ...'來容易地擴展WHERE子句以包含其他列。 – dasblinkenlight

+0

感謝它爲我工作。 – Santin