我看过其他一些类似的问题,但没有一个适合我发现自己所处的特殊情况。
我是 SQL 的相对初学者。
我正在编写查询以创建报告。我对该数据库具有只读访问权限。我正在尝试将三行合并为一行。任何只需要读取权限的方法都可以。
话虽如此,我拥有的三行是通过一个很长的子查询获得的。这是外壳:
SELECT Availability,
Start_Date,
End_Date
FROM (
-- long subquery goes here (it is several UNION ALLs)
...
) AS dual
以下是行:
Availability | Start_Date | End_Date
-------------------------------------
99.983 | NULL | NULL
NULL | 1/10/2013 | NULL
NULL | NULL | 1/28/2013
我想要做的是将三行合并为一行,如下所示:
Availability | Start_Date | End_Date
-------------------------------------
99.983 | 1/10/2013 | 1/28/2013
我知道我可以使用COALESCE()将它们放在一列中,但我更愿意保留三个单独的列。
我无法创建或使用存储过程。
是否有可能做到这一点?我可以举一个一般情况的例子吗?