私は2つのテーブルを一緒に結合しようとしています。問題は、最良の結合ロジックから悪い結合ロジックまで、いくつかの方法があることです。私は毎回異なる結合条件を使用して、同じテーブルを複数回左結合してから、case
スイッチを使用してベストマッチから変数値を選択したいと考えています。良いことを説明するための例は以下の通りです:TSQL - 異なる左の結合から変数を選択するためにケーススイッチを使用
select s.Product,
(case when c1.ID is not null then c1.ID
case when c2.ID is not null then c2.ID
case when c3.ID is not null then c3.ID
case when c4.ID is not null then c4.ID
else NULL) as ID
from
dbo.Table1 as s
left join [dbo].Table2 as c1 on %some join logic%
left join [dbo].Table2 as c2 on %some join logic%
left join [dbo].Table2 as c3 on %some join logic%
left join [dbo].Table2 as c4 on %some join logic%
where
(
c1.SKU is not null
or c2.sku is not null
or c3.sku is not null
or c4.sku is not null
)
問題はこのようなものが働いていないことである - 私は、エラー'Incorrect syntax near the keyword 'case'
を取得します「。 3行目(2番目のcase
スイッチ)。どのようにこれに取り組むためのアドバイス?
「ケース」に「END」がありません。 'CASE ... END' – Eric
@Eric nope、私はすでにこれを試みました - 同じエラーメッセージ –