3

複数の行を異なる値で更新しようとしていますが、特定の ID と一致する必要はありません。

もちろん、2 つの異なるテーブルの両方の列には、同じ数のレコードが含まれます。

例、テーブル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

今、別のテーブルがTable2ありColumn2、上記の 10 項目で更新したいと考えています。

これも ID が異なりますが、ItemName空白/null 値です。

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

そこで、からの 10 個の項目でTable2とを更新できるクエリを探しています。結果は次のようになります。Column2Table1

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 に答える