【发布时间】:2020-07-27 11:43:42
【问题描述】:
我在名为 T_USR 的数据库中有一个表,其中包括以下字段:-
USRUID (Primary Key)
USRID <- This is the current employee ID
我还有一个从 CSV 文件填充的临时表 #TEMP3,其中包括:
USRUID (the value of this field will match the Primary Key in T_USR)
EMPID <- This is to be the new employee ID
#TEMP3 仅包含在 T_USR 中找到的用户子集
我需要的是一个查询,仅当两个表中都存在员工 (USRUID) 时,才使用来自 #TEMP3.EMPID 的值更新 T_USR.USRID 的值。
这是我写的查询,但是对于出现在 T_USR 和 #TEMP3 中 NOT 的用户,USRID 字段设置为 NULL,这不是必需的结果。对于未出现在两个表中的用户,我希望他们的详细信息保持不变。
Update dbo.T_USR
SET dbo.T_USR.USRID =
(SELECT dbo.#TEMP3.EMPID
FROM #TEMP3
Where dbo.T_USR.USRUID = dbo.#TEMP3.USRUID
and exists (
select * from #TEMP3 where dbo.T_USR.USRUID = #TEMP3.USRUID)
)
如果有任何建议,我将不胜感激。谢谢。
【问题讨论】:
-
消耗性样本数据(如 DDL 和 DML 语句)和预期结果将帮助我们在这里为您提供帮助。
标签: sql sql-server sql-update