检查是否存在某个值是10列中的任意4列
问题描述:
我希望检查10列中的4列是否存在值“真”。它可以使用简单的方法来完成,但是有没有特定的有效方法,以便我不会错过任何组合而不使用循环。 如果每行的任何4列为真,则设置输出'是'。检查是否存在某个值是10列中的任意4列
答
这就是我喜欢做的事情。是否合适是另一回事。
将我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
答
该查询会给你你想要的结果:
SELECT IF(count(id) >= 4, 'YES', 'NO') AS OUTPUT
FROM TABLE_NAME
WHERE 'true' in (COLUMN1, COLUMN2, ..., COLUMN10);
用你的表格列替换TABLE_NAME
,用你的表格替换COLUMN
。
请说明您的具体问题或添加额外的细节,以确切地突出您所需要的。正如目前所写,很难确切地说出你在问什么。请参阅如何问问页面以获取帮助以澄清此问题。 –
似乎很简单。写一些SQL,告诉我们你得到了多少。 – nicomp