检查是否存在某个值是10列中的任何4列

时间:2017-10-06 15:23:53

标签: sql informatica

我希望检查价值是否真实'存在于10列中的任何4列中。它可以使用简单的if else来完成,但是有任何特定的有效方式,这样我就不会错过任何组合而不使用循环。 设置输出'是'如果每行有4列为真。

2 个答案:

答案 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}}替换为您的表格列。