sql:如何检查9列中的任意2列是否具有相同的值?

pgpifvop  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(420)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

10个月前关门了。
改进这个问题
我有9个二进制列(值0/1)。我需要从整个表中筛选出9列中任何一列的值为1的行。所以我用:

select * 
from T 
where (colA = 1 or colB = 1 or colC = 1 or colD = 1 or ...... colH = 1 or colI = 1)

但这两列中的任何一列也可以同时具有值1 colA = 1 and colB = 1 同时。所以要在9列上检查这些,我必须写这个查询55次。
如何编写一个查询,以便它在所有9个值相同的9中查找任意2个并计算其数目。

pbossiut

pbossiut1#

嗯。我认为你基本上想要:

where (colA + colB + colC + colD + colE + colF + colG + colH + colI) = 2

如果你说的“二进制”是指 bit ,您需要转换它们:

where ( convert(int, colA) +
        convert(int, colB) +
        convert(int, colC) +
        convert(int, colD) +
        convert(int, colE) +
        convert(int, colF) +
        convert(int, colG) +
        convert(int, colH) +
        convert(int, colI)
      ) = 2

相关问题