根据其他表格更改列值
问题描述:
我有2个表格。一个带有“真实”数据,第二个带有相关值的2列。例如:根据其他表格更改列值
表1:
ORG NUM INVOICE
111 AE539 8532
222 AE232 129
333 BF952 1576
111 BF332 395
333 AE416 2685
表2:
NUM REAL_N
AE539 00705
AE232 00703
BF952 00701
BF332 00712
AE416 00729
我需要的是,以取代在表1中,NUM值与其相应REAL_N从表2中我虽然做了CASE,但由于表2包含1500多行,并且每天都会更新新行,所以对我无效。
我需要的东西,对于每个表1的NUM值,检查表2以搜索该新值。因此,对于这个例子中,结果将是:
表1:
ORG NUM INVOICE
111 00705 8532
222 00703 129
333 00701 1576
111 00712 395
333 00729 2685
我怎么能这样做?
答
您需要执行INNER JOIN
相匹配的行,然后执行UPDATE
:
UPDATE [TABLE 1]
SET [NUM] = B.[REAL_N]
FROM [TABLE 1] A
INNER JOIN [TABLE 2] B
ON A.[NUM] = B.[NUM];
+0
由于仅此而已。实际上,我没有表1(这只是一个查询),这就是为什么我不考虑内部加入,但因为我可以创建表,它的工作原理。 – Piston
答
这实际上做你的需要。
UPDATE A SET A.NUM = B.REAL_N
FROM [TABLE 1] A INNER JOIN [TABLE 2] B
ON A.NUM = B.NUM
可能是重复的:https://*.com/questions/1604091/update-a-table-using-join-in-sql-server – Tyron78