SELECT a.samAccountName
FROM activeIds AS a
WHERE NOT EXISTS (SELECT *
FROM #tmp1 AS b
WHERE a.samAccountName = b.userID)
AND a.samAccountName LIKE 'ysp%'
ORDER BY a.samAccountName ASC;
GO
我创建了一个临时表,用于将用户ID YSP0000填充到YSP9999。 我有一个已经填充了YSP ID的现有表(activeIds)。
我正在尝试输出现有表(activeIds)中不存在的YSP ID。
由于某种原因,YSP ID未显示,而是显示其他ID(例如ZSP)。
有没有办法让ID出现?
答案 0 :(得分:1)
我相信您所寻找的不是NOT EXISTS
,而是NOT IN
。像这样:
select samAccountName
from activeIds
where samAccountId not in
(
select badAccountIds
from #temp1
)
这将选择ID不在临时表中的所有帐户名。
答案 1 :(得分:1)
您可以使用left outer join
完成同样的事情。
select a.samAccountName
from activeIds a
left outer join #tmp1 b on a.samAccountName = b.userID
where b.userID is null -- don't exist in #tmp1
and a.samAccountName like 'ysp%'
order by a.samAccountName