問題タブ [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.
sql-server - 3番目のテーブルに挿入するSQLマージ
2つのテーブルを比較し、一致しない値を別の3番目のテーブルまたはテーブル変数に次のように挿入するマージを作成したいと思います。
これを行うことはできますか、それとも他の方法がありますか?
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にない組み合わせを削除する可能性があります。
解決:
sql - Oracle SQL で MERGE を実行する場合、SOURCE で一致しない行を更新するにはどうすればよいですか?
main
データベースとデータベースがreport
あり、テーブルを から に同期する必要がありmain
ますreport
。
ただし、データベースでアイテムが削除された場合、データベースにフラグmain
を設定したいだけです。 IsDeleted
report
これを行うためのエレガントな方法は何ですか?
現在、次のような MERGE ステートメントを使用しています。
このWHEN NOT MATCHED
ステートメントは、 からすべての NEW 値をmain
取得しますが、 からのすべての OLD 値も更新したいと考えていますreport
。
Oracle PL/SQL を使用しています。
sql - Oracle Merge vs 選択してから挿入または更新
何が速いですか?
Merge ステートメント
また
select ステートメントをクエリしてから、update または insert ステートメントを使用します。
行数 == 0 の場合
そうしないと
sql - SQL オンデマンド キャッシュ テーブル (おそらく SQL MERGE を使用)
アプリケーションのオンデマンドSQL
キャッシュ テーブルの実装に取り組んでいるので、
CacheTable
カラム付きType, Number, Value
それから私はと呼ばれる関数を持っていますGetValue( Type, Number )
だから私は次のことをする関数が欲しい
If ( CacheTable
contains Type, Number) then return value Else 呼び出しGetValue( Type, Number)
、その値を入れてCacheTable
Value を返す
これを行う最もエレガントな方法を知っている人はいますか?
私はを使用することを考えていたSQL merge.
sql - H2 データベースの Oracle MERGE ステートメント
自動テスト用に H2 インメモリ データベースの使用を開始しました。本番環境と開発環境には Oracle を使用しています。したがって、H2 test-database のテーブル構造を、Oracle dev-database と同じように複製するという考えです。
Oracle SQL ステートメントには MERGE ステートメントが含まれており、テーブル名にエイリアスを使用し、クエリで USING を使用します。
このクエリを動的に変更して、開発環境の既存のクエリを変更しないように H2 と互換性を持たせるにはどうすればよいですか?
H2互換にするOracle SQLの例
(T1 & T2 はテーブルのエイリアスです)
sql - MERGE[INSERT]ステートメントのパラメーターとしてのストアード・プロシージャー
次の方法で2つのテーブルをマージする必要があります。
- ターゲットには1つの追加の列IDがあります。このIDは、別の単一列マスターテーブルから取得されます。
- マージステートメントにレコードを挿入するときに、新しい行をマテリアルテーブルに挿入し、それを使用し
id
てTARGETテーブルに挿入する必要があります。
新しく挿入されたIDを挿入して返すストアドプロシージャを作成しました。現在、問題はSQLマージ内にあり、ストアドプロシージャを呼び出すことはできません。
この問題の解決策は何でしょうか?関数ではINSERTを実行できないため、スカラー関数を使用できません。
sql - MERGEステートメントの結果をログに記録する
2つのテーブルがあります:生データを含む一時テーブル。その中の行が繰り返されている可能性があります(1回以上)。2つ目は、実際のデータを含むターゲットテーブルです(すべての行が一意です)。
カーソルを使用して行を転送しています。カーソル内でMERGEステートメントを使用します。どの行が更新され、どの行が削除されるかをDBMS_OUTPUT.PUT_LINEを使用してコンソールに出力するにはどうすればよいですか?
公式ドキュメントによると、このステートメントにはそのような機能はありません。
回避策はありますか?
sql - テーブルを配列とマージ
私はテーブルと配列を持っていて、それらをマージしたいと思っています。
構造 (t=ターゲット、s=ソース):
t.ID=s.ID および t.gID=s.gID の場合、何も起こりません。s.ID < 0 の場合は挿入します。s.ID が存在しない場合は削除します。
マージクエリでこれを構築することはできません:
@array の各行の gID が 1 の場合、クエリは gID=2 のすべてを削除します。ただし、影響を受けるのは gID=1 だけです。
誰かがこれを解決する方法を知っていますか?
sql - Merge のオプション パラメータ
SQL Server データベースのレコードを更新するために使用されるストアド プロシージャがあります。
一致が見つかり、変数として null が指定された場合、データベース内の既存の値を使用したいと考えています。
多くの場合、部分的なデータしか利用できないため、レコードを完成させるために手順がいくつかの段階で実行されます。実行ごとに常にすべての変数があるとは限りません。
以下の CASE が機能しないのはなぜですか? null 値を指定すると、フィールド内の既存のデータが置き換えられます。