2016-05-12 24 views
-2
  • 我在'表alpha'中有很多行,其中一些行也出現在'表beta'中。
  • 行alpha和beta都有日期列。
    • 然而,當我從表中的α選擇這兩個日期列行沒有在B行發生將分配給他們一個空值。

我的問題是,我想打第三日期欄將使用的日期從表測試如果它們不爲空。如果它們爲空,它應該使用表alpha中的日期。如何根據兩個表中的2列[內部和外部聯接]創建第3列

+0

http://stackoverflow.com/a/9878541/ 1624583 – Dhwani

+3

向我們展示樣品表數據和預期結果。 – jarlh

+0

真棒,Dhwani發佈的鏈接爲我做了這份工作! – Mikkel

回答

1

由於您尚未提供任何有關您的數據模型的信息,根據你的問題,我給了你一個粗略的草案。

Select 
colA, 
colB, 
..., 
alpha.date1, 
beta.date2, 
COALESCE(beta.date2,alpha.date1) date3 
from 
alpha 
left outer join beta (your keys) 
+0

你應該看看'COALESCE'併爲自己節省很多時間(和複雜性),輸入長'CASE'語句。 –

+0

雅是多選擇:) @TomH –

0

既然你沒有提供任何良好的數據爲例(DB模式)和預期結果

這裏是我的方法:

SELECT 
    a.date, 
    COALESCE(b.mycolumn, a.mycolumn) 
FROM alpha a 
LEFT JOIN beta b 
ON a.date = b.date