2017-10-06 91 views
1

我希望檢查10列中的4列是否存在值「真」。它可以使用簡單的方法來完成,但是有沒有特定的有效方法,以便我不會錯過任何組合而不使用循環。 如果每行的任何4列爲真,則設置輸出'是'。檢查是否存在某個值是10列中的任意4列

+0

請說明您的具體問題或添加額外的細節,以確切地突出您所需要的。正如目前所寫,很難確切地說出你在問什麼。請參閱如何問問頁面以獲取幫助以澄清此問題。 –

+1

似乎很簡單。寫一些SQL,告訴我們你得到了多少。 – nicomp

回答

3

這就是我喜歡做的事情。是否合適是另一回事。

將我BIT列到INT並加入他們......真正轉換爲1和假轉換爲0

SELECT 
    CASE 
     WHEN CAST(BitCol1 AS INT) + 
      CAST(BitCol2 AS INT) + 
      CAST(BitCol3 AS INT) + 
      CAST(BitCol4 AS INT) + 
      CAST(BitCol5 AS INT) + 
      CAST(BitCol6 AS INT) + 
      CAST(BitCol7 AS INT) + 
      CAST(BitCol8 AS INT) + 
      CAST(BitCol9 AS INT) + 
      CAST(BitCol10 AS INT) >= 4 
     THEN 'Yes' 
     ELSE 'No' 
    END 
+0

謝謝。投向INT應該可以解決它。 – Renee

0

該查詢會給你你想要的結果:

SELECT IF(count(id) >= 4, 'YES', 'NO') AS OUTPUT 
FROM TABLE_NAME  
WHERE 'true' in (COLUMN1, COLUMN2, ..., COLUMN10); 

用你的表格列替換TABLE_NAME,用你的表格替換COLUMN