gpt4 book ai didi

sql - T-SQL : How to Select Values in Value List that are NOT IN the Table?

转载 作者:行者123 更新时间:2023-12-01 17:44:38 25 4
gpt4 key购买 nike

我有一个电子邮件地址列表,其中一些在我的表中,有些不在我的表中。我想从该列表中选择所有电子邮件以及它们是否在表中。

我可以获取邮件地址在表中的用户,如下所示:
从用户 u WHERE u.EMAIL IN ('email1', 'email2', 'email3') 中选择 u.*

但是我如何选择该列表中表中不存在的值?

此外,我该如何选择:

E-Mail | Status
email1 | Exist
email2 | Exist
email3 | Not Exist
email4 | Exist

最佳答案

对于 SQL Server 2008

SELECT email,
CASE
WHEN EXISTS(SELECT *
FROM Users U
WHERE E.email = U.email) THEN 'Exist'
ELSE 'Not Exist'
END AS [Status]
FROM (VALUES('email1'),
('email2'),
('email3'),
('email4')) E(email)

对于以前的版本,您可以使用派生表 UNION ALL 执行类似的操作 - 处理常量。

/*The SELECT list is the same as previously*/
FROM (
SELECT 'email1' UNION ALL
SELECT 'email2' UNION ALL
SELECT 'email3' UNION ALL
SELECT 'email4'
) E(email)

或者,如果您只想要不存在的结果(如标题所示)而不是问题中给出的确切结果集,您可以简单地执行此操作

SELECT email
FROM (VALUES('email1'),
('email2'),
('email3'),
('email4')) E(email)
EXCEPT
SELECT email
FROM Users

关于sql - T-SQL : How to Select Values in Value List that are NOT IN the Table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113204/

25 4 0