0

私は2つのテーブルを持っています:テーブルA ID Field1 ....

テーブル B ID フィールド 2 フィールド 3 ...

テーブル B をループして、同じ ID を持つレコードがテーブル A に存在する場合は、値 Field2 と Field3 をテーブル A に追加します。

T-SQL での操作方法がわかりません。

4

3 に答える 3

2

今回のアップデートでは、ループ構造を使用する必要はありません。集合演算を使用すると、より適切な方法で解決できます。質問を正しく理解している場合は、テーブル B の値でテーブル Aを更新したいと考えています。次のようなクエリを使用します。

UPDATE TableA
  SET TableA.Field2 = TableB.Field2, TableA.Field3 = TableB.Field3
  FROM TableB
  WHERE TableA.ID = TableB.ID

テーブル A のフィールド 2 と 3 の値を置換する前に確認するために、このクエリで追加のチェックを行うことができます。

(最初にこのクエリの結果がどうなるかをテストするには、上記の UPDATE クエリから SELECT クエリを作成してください!)

于 2012-06-08T10:02:58.797 に答える
0
SELECT CASE
    WHEN TableA.ID IS NULL THEN TableB.Field2
    ELSE TableB.Field3
END as FieldX
FROM TableB LEFT OUTER JOIN TableA
        ON TableA.ID = TableB.ID
于 2012-06-08T09:54:02.660 に答える
0

おそらく、次のように簡単に実行できます。

select tab2.id, (tab2.field2 + tab2.field3) as sumfield 
from tab2 join tab1 on tab2.id = tab1.id

また

select tab2.id, (tab2.field2 + tab2.field3) as sumfield 
from tab2 
join 
(select distinct id from tab1) tab1
on tab2.id = tab1.id
于 2012-06-08T10:00:30.997 に答える