Sql 在查询中使用内部/外部联接的问题
这是我的主桌。我有三列,上面有日期。其中一些是空值。我想输出一些如下所示的东西。我试了很多,但没有得到正确的答案。如果有人能帮忙。谢谢Sql 在查询中使用内部/外部联接的问题,sql,oracle,Sql,Oracle,这是我的主桌。我有三列,上面有日期。其中一些是空值。我想输出一些如下所示的东西。我试了很多,但没有得到正确的答案。如果有人能帮忙。谢谢 a.id a.date b.id b.date c.id c.date 3 7/1/2014 11 NULL 21 NULL 5 8/1/2014 12 NULL 22 NULL 5 8/1/2014 13 NULL
a.id a.date b.id b.date c.id c.date
3 7/1/2014 11 NULL 21 NULL
5 8/1/2014 12 NULL 22 NULL
5 8/1/2014 13 NULL 22 NULL
5 8/1/2014 12 NULL 23 NULL
5 8/1/2014 13 NULL 23 NULL
6 NULL 14 06/01/2014 24 NULL
7 NULL 15 NULL 25 09/01/2014
期望输出
a.id b.id c.id date
3 11 21 07/01/2014
5 12 22 08/01/2014
5 13 22 08/01/2014
5 12 23 08/01/2014
5 13 23 08/01/2014
6 14 24 06/01/2014
7 15 25 09/01/2014
您正在寻找
联合
功能
select a.id,bid,c.id,
coalesce(a.date,b.date,c.date) as date
from ...
只需使用coalesce()
:
您的标题提到了连接,这意味着涉及多个表。列标题的名称似乎也暗示可能涉及3个表(a、b和c)。然而,您的描述似乎暗示所有字段都来自一个表:“这是我的主表,我有三列,其中有三个日期”。你的桌子结构是什么?
select a.id, b.id, c.id, coalesce(a.date, b.date, c.date) as date