2016-05-12 42 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