我有一个电子邮件地址列表,其中一些地址在表中,另一些不在表中。我想从该列表中选择所有电子邮件,无论它们是否在表中。
我可以获得邮件地址在表中的用户,如下所示:
第一个月
但是我如何在列表中选择表中不存在值呢?
而且,我怎么能这样选择:
E-Mail | Status
email1 | Exist
email2 | Exist
email3 | Not Exist
email4 | Exist
我有一个电子邮件地址列表,其中一些地址在表中,另一些不在表中。我想从该列表中选择所有电子邮件,无论它们是否在表中。
我可以获得邮件地址在表中的用户,如下所示:
第一个月
但是我如何在列表中选择表中不存在值呢?
而且,我怎么能这样选择:
E-Mail | Status
email1 | Exist
email2 | Exist
email3 | Not Exist
email4 | Exist
6条答案
按热度按时间e4yzc0pl1#
适用于SQL Server 2008
对于以前的版本,您可以对派生表
UNION ALL
执行类似的操作-ing常量。或者,如果您只需要不存在的结果集(如标题所暗示的),而不是问题中给出的确切结果集,则可以简单地执行此操作
xiozqbni2#
您需要用这些值创建一个表,然后使用
NOT IN
。这可以通过临时表、CTE(公用表表达式)或Table Values Constructor(SQL-Server 2008中提供)来完成:第二个结果可以通过
LEFT JOIN
或EXISTS
子查询找到:hgc7kmma3#
你应该有一个包含要检查的电子邮件列表的表,然后执行以下查询:
shstlldc4#
当你不想有在数据库中的列表中的电子邮件,你可以做以下:
这样你会得到这样的结果
在本例中,使用IN或EXISTS运算符比使用左连接更繁重。
祝你好运:)
ecbunoof5#
这应该适用于所有SQL版本。
xtfmy6hx6#
使用此版本:-- SQL Server 2008或更高版本