Table 1 :
A
123
231
232
333
Table 2 :
1 | 2
123 981
231 999
OUTPUT Table:
A
981
999
232
333
出力テーブルを2つのテーブルから取得したいとします。基本的に私は達成できないケース条件を書いています。異なるテーブルの別のフィールドに依存するフィールドのケース条件
Table 1 :
A
123
231
232
333
Table 2 :
1 | 2
123 981
231 999
OUTPUT Table:
A
981
999
232
333
出力テーブルを2つのテーブルから取得したいとします。基本的に私は達成できないケース条件を書いています。異なるテーブルの別のフィールドに依存するフィールドのケース条件
文次の2つの値のためには等価である:
COALESCE(b.id, a.id)
または
case when t2.A is null then t1.A else t2.B end
または
ISNULL(b.id, a.id)
パフォーマンスに違いはありません。構文のみです。
ここにcase
という表現は必要ありません。あなたはleft join
使用することができ、そしてちょうど3210結果:
SELECT COALESCE(b.id, a.id)
FROM a
LEFT JOIN b ON a.id = b.id
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
説明はいいです.. – Blackbam
有用な答えは、テーブル間の関係を理解することです。結合する提案がありますが、table2が特定の列に対して複数の行を持つことができれば、それは必ずしも機能しません。外部キーの制約はありますか?それは確かに1つあるべきであるように見えるので。そして、主キーは何ですか?簡単な例を使用して質問をしてください。 – SMor
表2には複数の行がありました。しかし、私の質問は、私が何をどのように尋ねたかに厳密に関係していました。私が同じテーブルで働いていたときに外来キーはありませんでした。テーブルに適用されたすべての制約について言及しておけば、非常に長い質問だったでしょうし、情報が不必要だったと感じます。ありがとうございました。 – Rahul