我在一所学校工作,我们正在尝试运行一个查询,以查看所有应该在下周开始但还没有 AD 帐户的学生(我们在寻呼机字段中使用 ID 号,因此对其进行搜索)。我们已将 SQL 链接到 Ad,因此我们可以运行这些查询并且从未遇到任何问题,但是当我运行以下命令时,我没有得到任何结果。
select *
from FutureStudents
where id not in (select * from OPENQUERY(ADSI, '
SELECT pager
FROM ''LDAP://OU=students,DC=stcatherines,DC=net,DC=au''
WHERE objectCategory = ''Person''
AND objectClass = ''user'' '
)
)
当我运行 not in 命令时,我希望我应该得到一个结果,但我没有。但是,如果我将查询更改为 in(而不是 not in),我会得到表中所有拥有帐户的学生。另外,在运行这些查询的同时,我做了一个简单的查询,在 AD 中寻找寻呼机,我一直在移动以获取结果,当帐户在学生 OU 中时,我得到结果以及何时移动我不。
所以我相当肯定这与 not in 声明有关。我是否使用了正确的陈述,或者我应该做些什么不同的事情来获得真实的结果?