2017-06-16 6 views
2
Table 1 : 

A 
123 
231 
232 
333 

Table 2 : 
1 | 2 
123 981 
231 999 

OUTPUT Table: 

A 
981 
999 
232 
333 

出力テーブルを2つのテーブルから取得したいとします。基本的に私は達成できないケース条件を書いています。異なるテーブルの別のフィールドに依存するフィールドのケース条件

+1

有用な答えは、テーブル間の関係を理解することです。結合する提案がありますが、table2が特定の列に対して複数の行を持つことができれば、それは必ずしも機能しません。外部キーの制約はありますか?それは確かに1つあるべきであるように見えるので。そして、主キーは何ですか?簡単な例を使用して質問をしてください。 – SMor

+0

表2には複数の行がありました。しかし、私の質問は、私が何をどのように尋ねたかに厳密に関係していました。私が同じテーブルで働いていたときに外来キーはありませんでした。テーブルに適用されたすべての制約について言及しておけば、非常に長い質問だったでしょうし、情報が不必要だったと感じます。ありがとうございました。 – Rahul

答えて

1

文次の2つの値のためには等価である:

COALESCE(b.id, a.id) 

または

case when t2.A is null then t1.A else t2.B end 

または

ISNULL(b.id, a.id) 

パフォーマンスに違いはありません。構文のみです。

2

ここにcaseという表現は必要ありません。あなたはleft join使用することができ、そしてちょうど​​3210結果:

SELECT COALESCE(b.id, a.id) 
FROM  a 
LEFT JOIN b ON a.id = b.id 
0
select case when t2.A is null then t1.A else t2.B end 
from table1 t1 
left join table2 t2 
on t1.A=t2.A 
+3

説明はいいです.. – Blackbam

関連する問題