1

我有一个我创建的临时表:

CREATE TABLE #tempIDS (
Name varchar(108),
Id uniqueidentifier,
IsUser bit )

我已经填充了它:

INSERT INTO #tempIDS (Name, Id)
SELECT UName, UId FROM UList
WHERE UName LIKE 'smi%'
ORDER BY UName

所以现在我想要做的是对照另一个表检查临时表中的记录,看看它们是否存在。如果它们在另一个表中,那么我想放一个“1”,如果不是,一个“0”。

这就是我的问题。

如果我这样做:从员工 A 中选择 count(A.UId),#tempIDS B 其中 A.UId = '480FA1E3-1A4B-4D3B-AB21-5070ADF974EB'

我可以得到“1”或“0”。

但是如何根据比较表中是否存在记录来选择并插入“1”或“0”到我的临时表中?这不起作用:

update #tempIDS
set IsUser = (select COUNT(StaffId) FROM Staff
where StaffId= (select Id from #tempIDS))

帮助?

4

2 回答 2

2
 UPDATE #tempIDS
 SET IsUser= CASE WHEN COALESCE(staff.staffid,0) = 0  THEN 0 ELSE 1 END
 FROM #tempIDS
 LEFT OUTER JOIN staff ON #tempIDS.id = staff.staffid

抱歉,您似乎想更新 IsUser 我正在更新 ID

于 2012-05-11T17:14:15.473 回答
0

您可以将 IsUser 列默认为 0,然后您只需更新找到匹配员工 ID 的行。

于 2012-05-11T17:08:13.280 回答