SQL:计算一行中属于某个值的列数?

时间:2013-09-02 14:42:59

标签: sql sql-server sql-server-2012

我有一个包含20行的表格,其中10个标记为A1, A2, A3, ...A10,另外10个标记为G1,G2,.etc。

它们在0和0之间保持整数。 99。

我想只选择具有x(比如说4)列数的行,这些列的值在一定范围内,例如50-70。

这可能吗?

1 个答案:

答案 0 :(得分:3)

以下是如何使用蛮力方法实现的目标:

select t.*
from (select t.*,
             ((case when a1 between 50 and 70 then 1 else 0 end) +
              (case when a2 between 50 and 70 then 1 else 0 end) +
              . . .
              (case when a10 between 50 and 70 then 1 else 0 end) +
              (case when g1 between 50 and 70 then 1 else 0 end) +
              (case when g2 between 50 and 70 then 1 else 0 end) +
              . . .
              (case when g10 between 50 and 70 then 1 else 0 end)
             ) n
      from t
     ) t
where n = 4;

您需要使用与其余列相同的逻辑填充. . .