問題タブ [sql-merge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
104 参照

sql - SQL での MERGE の使用

同じテーブル構造を持つT1、T2の2つのテーブルがあります。T2にまだ存在しない場合はT1からT2に新しい行を挿入し、T2の既存のデータを主キーで更新したい場合があります。MERGEを使用して、このためのSQLを手伝ってもらえますか。

ティア

0 投票する
2 に答える
1255 参照

mysql - 複製せずに 2 つのテーブルをマージする

重複することなく、2 つのユーザー テーブルを 1 つにマージする必要があります。

例:私のデータベースにはテーブルen_userとkn_userがあり、両方に存在するユーザーはほとんどいないため、クエリを実行してkn_userとen_userをマージすると、kn_userに存在する一意のユーザーをen_userにコピーする必要がありますが、両方に存在するユーザーはコピーしないでください合併する。

私のテーブルをよりよく理解するために

en_users テーブル

kn_user テーブル

したがって、kn_users と en_users をマージする場合、この出力が必要です

en_users テーブル

0 投票する
1 に答える
576 参照

oracle - Oracle: 無効な識別子

私はオラクルで次のクエリを使用しています。ただし、5行目の「c.par」は無効なパラメーターであるというエラーが表示されます。理由はわかりません。列が存在します。私がチェックしました。私は長い間これに苦労してきました。私がしたいのは、あるテーブルを別のテーブルにマージし、oracle を使用して更新することだけです。誰か助けてくれませんか?

0 投票する
2 に答える
20670 参照

sql-server - TSQL-Merge で条件が一致した場合の更新と挿入

次の条件で Merge を使用して UpSert を実行できるストアド プロシージャを作成しようとしています。

  1. Record が Present の場合、Target の EndDate を昨日の日に変更します。つまり、現在の日 - 1

  2. レコードが存在しない場合、新しいレコードを挿入

SPで使用したテーブルtblEmployeeは次のとおりです

UDTT を入力パラメーターとして使用する SP を次に示します。

列が一致したときに既存のレコードの更新と新しいレコードの追加の両方を実行するにはどうすればよいですか

TSQLでのマージの実行フローを誰かに説明してもらえますか?

上記の 3 つの条件はすべて Merge で毎回実行されますか、それとも一致する条件のみが毎回実行されますか

前もって感謝します

0 投票する
1 に答える
964 参照

sql - SQL マージでは、「一致しない場合」と「一致しない場合」の動作はどうなるでしょうか` 失敗

次のことを考慮してくださいmerge

これはそれほど難しいクエリではありませんが、 と について明確にする必要がありwhen matched and <condition>ますwhen not matched

たとえば、ソース テーブルには次のようなレコードがあります。

ターゲット テーブルに非常によく似たレコードが 1 つあるとします。

マージステートメントが実行されると、それらは一致します ( tgt.id = src.id) が、条件に失敗しandます ( ('sha1', isnull(tgt.field, '')) != hash('sha1', isnull(src.field, '')).

この例で実際に失敗したのはand条件であり、一致自体ではありません。この場合、挿入はnot matched by target実行されますか?

0 投票する
1 に答える
1044 参照

sql-server - MERGE を使用してデータを削除または挿入する

UI から、データテーブルをストアド プロシージャに渡します。そのパラメーターのタイプは、次の構造を持つユーザー定義のテーブル フィールドです。

このデータはテーブルに入れる必要があり、テーブルに存在するがデータテーブルにないデータは削除する必要があります。

テーブルデータの例

そして、私のデータテーブルには2つの行があり、1つの一致する行と1つの新しい行があります

データテーブル データの例

その結果、456/B9 行を削除し、123/A1 行には何も起こらず、786/Z6 行を挿入する必要があります。

MERGE ステートメントを使用できると思いますが、その作成方法がわかりません。

WHEN NOT MATCHED 挿入を行う必要があることは理解していますが、削除部分はどこに入るのですか?

編集:明確にするために、データテーブルには同じ人物キーの多くの行が含まれる可能性がありますが、コンポーネントキーは異なります。

データテーブル データの例

テーブルデータの例

上記のデータテーブルを挿入した後の結果は

123/A1 が削除され、456/B9 がまだ表にあることに注意してください。

0 投票する
1 に答える
43 参照

sql-server - 単一の SQL Server MERGE (XML から) を使用して、テーブル内の複数のレコードを更新します。

SQL Server 2012MERGEを使用して、XML ストリームからテーブル内の複数のレコードを更新することはできますか?

私のテーブルは次のとおりです。

ここに画像の説明を入力

1 日に数回、次の XML エンベロープを受け取ります。

LocationIDXMLに基づいて気象データを更新する必要があります。個々のメッセージ (場所) の方法は知っていますがMERGE、単一の .xml 内のすべてのテーブル レコードを更新する方法があるかどうか疑問に思いますMERGE

0 投票する
2 に答える
25940 参照

sql - ターゲットと一致しない SQL マージとソースと一致しない SQL マージ

と はどう違いますNOT MATCHED BY SOURCENOT MATCHED BY TARGET

例えば:

WHEN NOT MATCHED BY SOURCEレコードはターゲットには存在するが、ソースには存在しないということですか? - それで、それらを削除できますか?

およびWHEN NOT MATCHED BY TARGET- レコードがソースには存在するが、ターゲットには存在しないことを意味しますか? 挿入できますか?