[英]Update an column in SQL Server with values from a different lookup table?
[英]How to update SQL Server column after from different table
我有一個名為 TableA 的表,它存儲了這樣的事件列表
Event_Id Event_Name
1 Found in AD
2 Found in AAD
我有另一個表稱為表 B,它看起來像這樣
Event_Id UserName Extra
NULL David Found In AAD
1 James Found in AD
Null Ronal Null
我只是嘗試根據比較 Table1 Event_Name和 TableB Extra列僅更新 TableB Event_ID列中的缺失值/空值。
我現在正在做這樣的手動處理,所以如果我能得到任何關於如何直接連接兩個表並更新它的幫助,我將不勝感激。
Update Table B
Set Event_Id = case
when Extra = 'Found in AAD' then 2
end
您可以在UPDATE
中使用一個簡單的子查詢來做到這一點。
UPDATE TableB SET
Event_Id = (SELECT Event_Id from TableA a where a.Event_Name = TableB.Extra)
WHERE Event_Id is null;
這將查找Event_Name
和Extra_Name
上的任何匹配項,並根據匹配項更新Extra
表的Event_Id
。
SQL:
UPDATE
Extra_Data
SET
Extra_Data.Event_Id = a.Event_Id
FROM
Event_Data a
INNER JOIN Extra_Data b ON a.Event_Name = b.Extra_Name
WHERE
b.Event_Id IS NULL;
結果:
| Event_Id | UserName | Extra_Name |
|----------|----------|--------------|
| 2 | David | Found In AAD |
| 1 | James | Found in AD |
| (null) | Ronal | (null) |
SQL 小提琴:
update table_b
set table_b.Event_Id = table_a.Event_Id
from table_b
JOIN table_a
ON table_b.extra = table_a.Event_Name
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.