我正在尝试使用不同的值更新多行,但不需要匹配任何特定的ID。
当然,两个不同表上的两列将具有相同数量的记录。
示例,我有一个表Table1
和Column1
以及一个包含该表中列表10项的查询( ID
不是连续的)。< / p>
ID ItemName
1 Item1
2 Item2
4 Item3
5 Item4
6 Item5
8 Item6
9 Item7
14 Item8
18 Item9
23 Item10
现在,我想要使用上面的10个项目更新另一个表Table2
和Column2
。
这也有不同的ID,但ItemName
为空/空值。
ID ItemName
301 NULL
321 NULL
323 NULL
331 NULL
333 NULL
335 NULL
336 NULL
355 NULL
377 NULL
388 NULL
所以,我正在寻找一个查询,我可以使用Table2
中的10个项目更新Column2
和Table1
,结果如下所示
ID ItemName
301 ITem1
321 ITem2
323 ITem3
331 ITem4
333 ITem5
335 ITem6
336 ITem7
355 ITem8
377 ITem9
388 ITem10
请帮忙。提前谢谢。
答案 0 :(得分:6)
WITH CTE1
AS (SELECT *,
Row_number() OVER (ORDER BY ID) AS RN
FROM Table1),
CTE2
AS (SELECT *,
Row_number() OVER (ORDER BY ID) AS RN
FROM Table2)
UPDATE CTE2
SET ItemName = CTE1.ItemName
FROM CTE2
JOIN CTE1
ON CTE1.RN = CTE2.RN