私はsource
テーブルをクエリする動的クエリ文字列を作成するために使用しているcriteria
テーブルのレコード内に保存された条件を持っており、そのクエリの結果はdestination
テーブルに挿入されます。私の目標は、source
テーブルのレコードと条件が一致した場合は、テーブルのIDをdestination
テーブルに挿入することです。複数の条件レコードが一致する場合は、最初のレコードを挿入します。レコードを選択したORステートメントを決定しますか?
句はOR接続によってセクションの数と共に、各セクション内の条件に内蔵されているザが一緒をAND演算されます。以下のような何か:
insert into destinationTable(col1, col2, col3)
select col1, col2, col3
from sourceTable
where
--' begin generated code'
(a = 525 and b = 324 and c = 4523) -- 'from criteria record 1'
or (d = 'asdf' and e = 3.43) -- 'from criteria record 2'
or (f = 234523 and g = 9823742) -- 'from criteria record 3'
etc...
--' end generated code'
私が基準と一致したことを第1のOR部分であるかを決定し、これを行うことができますどのように先テーブル内の対応する基準IDを挿入する方法を見つける必要がありますか?
ニースであることが十分に一致しているが、これは先のテーブルに重複したレコードを作成できませんでしたか? – adam0101
subqueryそれを選択し、col1、col2、col3、min(which)from(select col1 ...、1 from ... union ...)サブクエリグループcol1、col2、col3のようなMin(lastcolumn) – RichardTheKiwi
UNION ALLをUNIONに変更して別のクエリを実行することもできますが、他のソリューションと同じくらい効果的かどうかは疑問です。 – adam0101