我有一个查询,我正在查找我们的员工表中的用户,并递归地浏览记录以找出报告给我们源输入的每个人。来自多个来源的TSQL递归
我的问题是,而不是传递一个单一的值,在下面的情况下,@QID
Id喜欢能够传递多个值。我试图修改它说WHERE QID IN ('user1', 'user2')
但它始终只返回的数据为它IN
条款
WITH empList(mgrQID, QID, NTID, FullName, lvl, countOfDirects)
AS
(
SELECT TOP 1 mgrQID, QID, NTID, FirstName+' '+LastName, 0, CountOfDirects
FROM dbo.EmployeeTable
WHERE QID = @QID
UNION ALL
SELECT b.mgrQID, b.QID, b.NTID, b.FirstName+' '+b.LastName, lvl+1, b.countOfDirects
FROM empList a
CROSS APPLY dbo.Fetch_Directs_by_qid(a.QID)b
)
如果你做一个'WHERE QID IN(“用户1”,“用户2”)'和'留下SELECT TOP 1'然后锚查询将只返回一条记录。这个单一记录是递归链中唯一的输入。 –