我希望检查价值是否真实'存在于10列中的任何4列中。它可以使用简单的if else来完成,但是有任何特定的有效方式,这样我就不会错过任何组合而不使用循环。 设置输出'是'如果每行有4列为真。
答案 0 :(得分:3)
这就是我喜欢做的事情。是否合适是另一回事。
我将BIT
列转换为INT
并添加它们... true转换为1,false转换为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
答案 1 :(得分:0)
此查询将为您提供所需的结果:
TABLE_NAME
将COLUMN
替换为您的表格,将{{1}}替换为您的表格列。