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個表中獲取輸出表。基本上我想寫一個我無法完成的案例條件。取決於不同表中另一個字段的字段的情況條件
爲下面的語句兩個值是等價的:
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