SQL查询信息*不是*在数据库中

Gab*_*art 3 sql sql-server

我有一个很大的电子邮件地址列表,我需要确定哪些不在我的数据库中.我可以构建一个能告诉我这些信息的查询吗?

我正在使用SQL Server 2000,如果它需要非标准扩展

Dav*_*vis 5

对于一个巨大的列表,我建议将该列表加载到第二个表(例如TEMP_EMAIL_ADDRESS),然后使用:

SELECT
  EMAIL
FROM
  TEMP_EMAIL_ADDRESS
WHERE
  EMAIL NOT IN (SELECT EMAIL FROM EMAIL_ADDRESS)
Run Code Online (Sandbox Code Playgroud)

数据转换

如果您的数据位于名为emails.txt的文本文件中(每行一行),则可以使用以下DOS命令创建插入语句:

FOR /F %i IN (emails.txt) DO echo INSERT INTO TEMP_EMAIL_ADDRESS (EMAIL) VALUES ('%i') >> insert-email.sql
Run Code Online (Sandbox Code Playgroud)

该命令将在当前目录中创建一个名为insert-email.sql的新文件,其中包含将现有电子邮件地址列表注入数据库所需的所有插入.


jao*_*jao 5

创建一个临时表,将电子邮件地址加载到临时表中,然后执行 NOT IN 查询,例如

SELECT emailaddress FROM temp_table WHERE emailaddress NOT IN (SELECT emailaddress FROM table)
Run Code Online (Sandbox Code Playgroud)

你可以用 INSERT INTO 扩展它