3

我正在尝试使用不同的值更新多行,但不需要匹配任何特定的 ID。

当然,两个不同表上的两列将具有相同数量的记录。

例如,我有一个表Table1Column1一个查询,其中列出了该表中的10 个项目(ID不连续)。

ID  ItemName
1    Item1
2    Item2
4    Item3
5    Item4
6    Item5
8    Item6
9    Item7
14    Item8
18    Item9
23    Item10

现在,我有另一个表Table2Column2我想用上面的 10 个项目进行更新。

这也有不同的 ID,但是ItemName是空白/空值。

ID   ItemName
301    NULL
321    NULL
323    NULL
331    NULL
333    NULL
335    NULL
336    NULL
355    NULL
377    NULL
388    NULL

所以,我正在寻找一个查询,我可以在其中更新Table2Column2中的这 10 个项目Table1,结果如下所示

ID   ItemName
301    ITem1
321    ITem2
323    ITem3
331    ITem4
333    ITem5
335    ITem6
336    ITem7
355    ITem8
377    ITem9
388    ITem10

请帮忙。提前致谢。

4

1 回答 1

7
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 

SQL小提琴

于 2012-10-14T19:03:22.000 回答