複数のテーブルから値を選択して別のテーブルに値を挿入しようとしています。これらの値の1つは区別する必要があります。 CTEでこれをどうやって行うのですか?SQL Server:1つのフィールドが異なるフィールドで複雑な選択クエリを挿入する
マイクエリ:
insert into Cycle (CycleID, PlotID, Product, Variety, Start, End)
Select CycleID, o.ID, 'Product', v.ID, t.Start, t.End
from
Import as t
inner join Varieties as v
on t.Name like v.Name
inner join Plots as o
on t.PlotCode like o.PlotCode
私は、これはt.CycleIDは別個のものであるエントリのみを選択するようにする必要があります。
でテストし、感謝! –
@BorisK Btw、あなたは本当にそれらの結合でLIKEを使用する必要がありますか?それが意図的でv.Nameとo.PlotCodeが '%'または '_'(f.e." x%y%1_2 ")の文字列を持つ場合、' = 'を使用すると、クエリオプティマイザがより速い実行計画を出すことができます。 – LukStorms
ああ、確かに。私は非常に小さなデータセット、数百レコードで作業していますが、後で使用するために留意しています。 –