SQL:比较行中的电子邮件地址,并检索未find的行

我正在使用Teradata系统,其中有一个表(TABLE_NAME),其中有一列email_address_table 。 我有一个Excel表格,其中有一列电子邮件地址。

我试图做的是,检索表中的所有行,其中email_address_table不是Excel表中的电子邮件地址的一部分。

据我所知, Teradata不能直接使用excel工作表,所以我正在用Java编写代码,在这里我可以从列中检索单个电子邮件地址,甚至将它们格式化为一个string,我想直接在SQL查询。 所以,基本上,根据我所需要的语法,查询将在Java程序中形成。

input:

  +---------+----------+---------------------------------+ | id | name | Date | +---------+----------+---------------------------------+ | 1 | abc@gmail.com | 21.03.2015 | | 2 | def@gmail.com | 22.04.2015 | | 3 | ajk@gmail.com | 22.03.2015 | | 4 | ghi@gmail.com | 23.03.2015 | | 5 | ghi@gmail.com | 23.03.2015 | 

Excel工作表:

  +---------+-----------+ | name | +---------+-----------+ | abc@gmail.com | | ccc@gmail.com | | ggg@gmail.com | | hhh@gmail.com | | ghi@gmail.com | 

预期查询:

 select * from TABLE_NAME where email_address does not match any in {"email1","email2","email3"...."email-n"} 

此外,TABLE_NAME包含大约80,000个条目,并且Excel表包含大约4000个电子邮件地址。 任何最佳的方式进行此search?

我该如何处理这个问题。 我已经从excel表格中获得了电子邮件作为纯string,我可以直接复制粘贴,在Java中更改格式。 谢谢。

 SELECT * FROM table_name WHERE email_address NOT IN ('email1', 'email2', 'email3')