字段以标识组在SQL Server 2012中是否具有特定值

时间:2018-07-12 10:53:23

标签: sql sql-server

我有一个表,表1有2列。

Table1

我的结果表应该是

enter image description here

代表组中某个值的存在。 table1非常大,我不想使用任何游标或循环。请给我建议一个更好的SQL方式

1 个答案:

答案 0 :(得分:1)

使用条件逻辑。这是一种方法:

select column1,
       (case when sum(case when column2 = 'C' then 1 else 0 end) > 0
             then 1
        end) as has_c,
       (case when sum(case when column2 = 'C' then 1 else 0 end) = 0
             then 1
        end) as does_not_have_c,
from table1 t1
group by column1;

或更简单地说是:

select column1,
       max(case when column2 = 'C' then 1 end) as has_c,
       min(case when column2 = 'C' then 0 else 1 end) as does_not_have_c,
from table1 t1
group by column1