問題タブ [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 に答える
25818 参照

sql-server - 3番目のテーブルに挿入するSQLマージ

2つのテーブルを比較し、一致しない値を別の3番目のテーブルまたはテーブル変数に次のように挿入するマージを作成したいと思います。

これを行うことはできますか、それとも他の方法がありますか?

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

sql-server - SQL ServerMERGE+他のテーブルの結合

データベースプロジェクト内でMERGEステートメントを使用して、次のような静的な値セットから参照データを入力しています。

問題は、他のテーブルのコンテンツに基づいてセカンダリテーブルにデータを入力するときに発生します。たとえば、UserPermissionテーブルにユーザーIDとロールIDが含まれていて、静的な値を('me@somewhere.com'、'Admin')のように設定し、UserandPermissionに参加してINSERTのID値。どこに行けばいいのかわからない...

編集:

ユーザーテーブル(ID、ユーザー名)1、John Smith 2、Mark Wahlerg

ロールテーブル(ID、RoleName)1、管理者2、ユーザー3、ゲスト

ユーザーロールテーブル(ユーザーID、ロールID)

MERGEステートメントのSQLで、次のような指定ができるようにUser-Roleテーブルを調整する必要があります。

そして、IDを決定するために結合し、存在しない組み合わせを挿入します(そして、存在するがMERGEにない組み合わせを削除する可能性があります。

解決:

0 投票する
4 に答える
131600 参照

sql - Oracle SQL で MERGE を実行する場合、SOURCE で一致しない行を更新するにはどうすればよいですか?

mainデータベースとデータベースがreportあり、テーブルを から に同期する必要がありmainますreport

ただし、データベースでアイテムが削除された場合、データベースにフラグmainを設定したいだけです。 IsDeletedreport

これを行うためのエレガントな方法は何ですか?

現在、次のような MERGE ステートメントを使用しています。

このWHEN NOT MATCHEDステートメントは、 からすべての NEW 値をmain取得しますが、 からのすべての OLD 値も更新したいと考えていますreport

Oracle PL/SQL を使用しています。

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

sql - Oracle Merge vs 選択してから挿入または更新

何が速いですか?

Merge ステートメント

また

select ステートメントをクエリしてから、update または insert ステートメントを使用します。

行数 == 0 の場合

そうしないと

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

sql - SQL オンデマンド キャッシュ テーブル (おそらく SQL MERGE を使用)

アプリケーションのオンデマンドSQLキャッシュ テーブルの実装に取り​​組んでいるので、

CacheTableカラム付きType, Number, Value

それから私はと呼ばれる関数を持っていますGetValue( Type, Number )

だから私は次のことをする関数が欲しい

If ( CacheTablecontains Type, Number) then return value Else 呼び出しGetValue( Type, Number)、その値を入れてCacheTableValue を返す

これを行う最もエレガントな方法を知っている人はいますか?

私はを使用することを考えていたSQL merge.

0 投票する
3 に答える
11111 参照

sql - H2 データベースの Oracle MERGE ステートメント

自動テスト用に H2 インメモリ データベースの使用を開始しました。本番環境と開発環境には Oracle を使用しています。したがって、H2 test-database のテーブル構造を、Oracle dev-database と同じように複製するという考えです。

Oracle SQL ステートメントには MERGE ステートメントが含まれており、テーブル名にエイリアスを使用し、クエリで USING を使用します。

このクエリを動的に変更して、開発環境の既存のクエリを変更しないように H2 と互換性を持たせるにはどうすればよいですか?

H2互換にするOracle SQLの例

(T1 & T2 はテーブルのエイリアスです)

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

sql - MERGE[INSERT]ステートメントのパラメーターとしてのストアード・プロシージャー

次の方法で2つのテーブルをマージする必要があります。

  • ターゲットには1つの追加の列IDがあります。このIDは、別の単一列マスターテーブルから取得されます。
  • マージステートメントにレコードを挿入するときに、新しい行をマテリアルテーブルに挿入し、それを使用しidてTARGETテーブルに挿入する必要があります。

新しく挿入されたIDを挿入して返すストアドプロシージャを作成しました。現在、問題はSQLマージ内にあり、ストアドプロシージャを呼び出すことはできません。

この問題の解決策は何でしょうか?関数ではINSERTを実行できないため、スカラー関数を使用できません。

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

sql - MERGEステートメントの結果をログに記録する

2つのテーブルがあります:生データを含む一時テーブル。その中の行が繰り返されている可能性があります(1回以上)。2つ目は、実際のデータを含むターゲットテーブルです(すべての行が一意です)。

カーソルを使用して行を転送しています。カーソル内でMERGEステートメントを使用します。どの行が更新され、どの行が削除されるかをDBMS_OUTPUT.PUT_LINEを使用してコンソールに出力するにはどうすればよいですか?

公式ドキュメントによると、このステートメントにはそのような機能はありません。

回避策はありますか?

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

sql - テーブルを配列とマージ

私はテーブルと配列を持っていて、それらをマージしたいと思っています。

構造 (t=ターゲット、s=ソース):

t.ID=s.ID および t.gID=s.gID の場合、何も起こりません。s.ID < 0 の場合は挿入します。s.ID が存在しない場合は削除します。

マージクエリでこれを構築することはできません:

@array の各行の gID が 1 の場合、クエリは gID=2 のすべてを削除します。ただし、影響を受けるのは gID=1 だけです。

誰かがこれを解決する方法を知っていますか?

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

sql - Merge のオプション パラメータ

SQL Server データベースのレコードを更新するために使用されるストアド プロシージャがあります。

一致が見つかり、変数として null が指定された場合、データベース内の既存の値を使用したいと考えています。

多くの場合、部分的なデータしか利用できないため、レコードを完成させるために手順がいくつかの段階で実行されます。実行ごとに常にすべての変数があるとは限りません。

以下の CASE が機能しないのはなぜですか? null 値を指定すると、フィールド内の既存のデータが置き換えられます。