查找具有单个SSN条目为空的员工ID或多个不相等的SSN条目

时间:2013-03-04 19:38:26

标签: sql sql-server

我有一个包含employeeID和SSN字段的表。我试图用以下标准过滤掉所有记录:

具有单个SSN条目且值为null的所有员工

所有拥有多个SSN条目的员工

以下显示了三种情景

ID          SSN
1           000000000
1           NULL

ID          SSN
1           000000000
1           111111111

ID          SSN
1           NULL

以下是表定义:我使用Sybase数据库中的数据填充此表

http://tinypic.com/r/65wvhi/6

谢谢, 布拉德

2 个答案:

答案 0 :(得分:2)

select  employeeID 
from    YourTable
group by 
        employeeID
having  count(case when SSN is null then 1 end) > 0
        or count(distinct SSN) > 1

答案 1 :(得分:1)

您可以使用聚合,使用having子句:

 select e.id
 from ssns e
 group by e.id
 having (count(*) = 1 and count(ssn) = 0) or  -- first condition
        count(*) > 1   -- second condition