マージ検索条件を理解しようとしていて、次の問題が発生しました。マージ検索複数条件 - SQL Server
表1
id groupid description
-------------------------
1 10 Good
2 20 Better
表2は
id groupid description
-------------------------
1 10 Very Good
1 20 Much Better
Iは、ターゲットテーブルのidの両方に存在するだけでグループID = 20本で(表2)標的とするソース(TABLE1)をマージしようとします。ここで
は、(検索条件をマージ私は
Merge table1 source
Using table2 target ON (target.id = source.id AND target.groupid = 20)
When Matched
Then update
set target.description = source.description
を書いています、私は期待していた出力が
表2
id groupid description
-------------------------
1 10 Very Good
1 20 Good
あるしかし、私はON句の100%を確認していないものです)target.id = source.id and target.groupid = 20
を複数の条件でチェックします。結果は常に予測可能であり、これらの複数の条件で上記の期待と一致していますか?ここでの予測可能性の問題か、「一致した場合」の条件にtarget.groupId = 20
を追加する必要がありますか?
さてあなたは、表2には、目標だったが、その後、クエリでソースとしてそれを使用しました。それ以外は私にはうまく見えます...これはWHERE句を書く別の方法です。 – scsimon
table2、行2:id = 1ではないmispint? – Serg
@ scsimon-タイプミスを指摘してくれてありがとう、同じ編集。 – 100pipers