选择实例不存在的所有记录

时间:2018-01-29 21:16:26

标签: sql sql-server

我正在尝试编写一个查询,向我显示所有未具有True值

的ID

enter image description here

对于这些结果,查询应该只返回2和5,因为那些只有FALSE主值的唯一ID

2 个答案:

答案 0 :(得分:1)

使用NOT EXISTS

select id
from your_table t1
where not exists (select 1 
          from your_table t2
          where t2.id = t1.id and t2.primary = 'TRUE')

我假设primaryvarchar

答案 1 :(得分:1)

每个ID汇总,看看最大值是否为“TRUE”'或者' FALSE'。作为' TRUE' > ' FALSE'在字母表中:如果max =' FALSE'然后没有“真实”。记录身份证。

select id 
from mytable
group by id
having max(primary) = 'FALSE';

当然其他条件也是可能的,例如

having count(case when primary = 'TRUE' then 1 end) = 0;