我有兩張桌子,
表格1:
---- -------
| ID | Value |
---- -------
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
---- -------
表2:
---- -------
| ID | Value |
---- -------
| 3 | E |
| 4 | F |
---- -------
更新后的表1
---- -------
| ID | Value |
---- -------
| 1 | A |
| 2 | B |
| 3 | E |
| 4 | F |
---- -------
我想更新表 1 中表 2 中存在匹配 ID 的所有“值”列,并將表 2 中沒有匹配 ID 的其余值單獨保留,如上面的示例所示。
基本上如下:
UPDATE Table1
SET Value = (SELECT Value FROM Table2
WHERE Table1.[ID] = Table2.[ID])
除了這使得 Table1 中所有不在 Table2 中的值都為 NULL。我希望這保持不變。
在輕松使用之前我已經完成了
UPDATE
與
CASE WHEN
但我不記得到底是什么了。
uj5u.com熱心網友回復:
使用INNER JOIN非子查詢。這將隱式過濾到僅找到相關行的行:
UPDATE T1
SET [Value] = T2.Value
FROM dbo.Table1 T1
JOIN dbo.Table2 T2 ON T1.ID = T2.ID;
db<>小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/461502.html
