2017-06-16 46 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

爲下面的語句兩個值是等價的:

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

相關問題