0

値が等しくなることのない列を結合するにはどうすればよいですか?

[Foo.Column1 = x、y、またはz] AND [Bar.Column1=Q]で2つのテーブルを左結合する方法はありますか

等しい値を持たない2つのテーブルからのクエリにデータが必要ですが、最初のテーブルの値が3つの異なる値のいずれかである場合、実際には等しいことがわかります。

したがって、2つのテーブルを結合できます。Foo.Column1に指定された値が含まれ、Bar.Column1に個別の特別な値が含まれている場合、2つの行がリンクされることをステートメントに伝えます=?

どちらのテーブルにも同じ値はありません。

4

1 に答える 1

0

次のように、2つのテーブルの値間のマッピング関係を定義します。

select *
from Foo
join ( 
  select * from ( values 
    ('A', 'Z'),
    ('B', 'Z'),
    ('C', 'Z'),
  ) MapTable(FooColumn,BarColumn)
) MapTable on MapTable.FooColumn = Foo.Column1
join Bar on Bar.Column1 = MapTable.BarColumn

MapTableの行数が少なく静的な場合は、MapTableをサブクエリにすることでそれらをハードコーディングすることもできます。

于 2013-03-13T16:33:17.710 に答える