- 我在'表alpha'中有很多行,其中一些行也出现在'表beta'中。
- 行alpha和beta都有日期列。
- 然而,当我从表中的α选择这两个日期列行没有在B行发生将分配给他们一个空值。
我的问题是,我想打第三日期栏将使用的日期从表测试如果它们不为空。如果它们为空,它应该使用表alpha中的日期。如何根据两个表中的2列[内部和外部联接]创建第3列
我的问题是,我想打第三日期栏将使用的日期从表测试如果它们不为空。如果它们为空,它应该使用表alpha中的日期。如何根据两个表中的2列[内部和外部联接]创建第3列
由于您尚未提供任何有关您的数据模型的信息,根据你的问题,我给了你一个粗略的草案。
Select
colA,
colB,
...,
alpha.date1,
beta.date2,
COALESCE(beta.date2,alpha.date1) date3
from
alpha
left outer join beta (your keys)
你应该看看'COALESCE'并为自己节省很多时间(和复杂性),输入长'CASE'语句。 –
雅是多选择:) @TomH –
既然你没有提供任何良好的数据为例(DB模式)和预期结果
这里是我的方法:
SELECT
a.date,
COALESCE(b.mycolumn, a.mycolumn)
FROM alpha a
LEFT JOIN beta b
ON a.date = b.date
http://stackoverflow.com/a/9878541/ 1624583 – Dhwani
向我们展示样品表数据和预期结果。 – jarlh
真棒,Dhwani发布的链接为我做了这份工作! – Mikkel