SQL Server 2005/2008:查找存在的行值,并列出不存在的行值 in select 列条件 IN()



我有一个包含列的表:

UserID, EmployeeID, BadgeType, HiredDate, TermDate

现在我需要找到与(gbro, qunro, 1utny, ybeiot, 4ybey)相关的userID

存在 3 个用户 ( gbro, qunro, 1utny ),因此它与各自的列信息一起列出。

如果ybeiot, 4ybey根本不存在,但我仍然希望它们列在一个单独的表中,但带有一条打印的消息怎么办:User that does not exist: ybeiot;4ybey

帮助,一直在寻找如何做到这一点的方法。

我尝试了JOIN(所有连接),但它没有达到我想要的结果。

你看过SQL EXIST关键字吗?

put all the users to be searched in a temp table or table variable @userstoSearch
select * from  @userstoSearch us left join users u
on us.UserID=u.UserID where u.userID is not null
select us.UserID from  @userstoSearch us left join users u
on us.UserID=u.UserID where u.userID is null
for xml path('')

您需要两个选择。第一个将列出现有值,第二个将列出不存在的值。您应该使用 union 关键字合并这些结果。

相关内容

最新更新