如何获取DB2中的非现有值列表?

时间:2017-03-07 17:51:07

标签: sql select db2

我有一个很大的SSN列表,我需要检查它是否存在于表中。我该怎么做?

我试过了:

SELECT SSN FROM TABLE1 WHERE NOT EXISTS(SELECT SSN FROM TABLE1 WHERE SSN IN ('111111111','222222222', '333333333', '777777777'))

但没有结果集。

此处SSNs:111111111,2222222222和333333333存在于表中。 SSN:777777777并不存在于表格中。

1 个答案:

答案 0 :(得分:3)

你去吧

with temp(ssn) as (                              
 values                                          
  ( '111111111'),                                
  ('222222222'),                                 
  ('333333333'),                                 
('777777777')                                    
)                                                
select * from temp a where ssn not in (            
SELECT SSN FROM TABLE1 where ssn = a.ssn          
)    

OR

select * from ( 
values ( '111111111'), ('222222222'), ('333333333'), ('777777777') 
)temp(ssn) 
where ssn not in ( select ssn from table1 )