【发布时间】:2021-08-20 22:12:45
【问题描述】:
我有一个名为 Sales 的表,其中包含自 1990 年以来的数据,但在 2020 年,数据开始来自另一个名为 SalesNew 的表。因此,如果我查询第一个表,我会在 2020 年之后得到空值,如果我查询第二个表,我会在 2020 年之前得到空值。有没有办法从两个表的一个列中检索,所以我不会得到空值?非常感谢!
【问题讨论】:
我有一个名为 Sales 的表,其中包含自 1990 年以来的数据,但在 2020 年,数据开始来自另一个名为 SalesNew 的表。因此,如果我查询第一个表,我会在 2020 年之后得到空值,如果我查询第二个表,我会在 2020 年之前得到空值。有没有办法从两个表的一个列中检索,所以我不会得到空值?非常感谢!
【问题讨论】:
您可以使用 COALESCE 函数,它返回第一个非空值。例如。: SELECT COALESCE(sales.col1, salesnew.col1) from ...
详情:https://www.oracletutorial.com/oracle-comparison-functions/oracle-coalesce/
【讨论】:
您可以使用视图来组合两个表中的数据:
create view v_sales as (
select . . .
from sales s
union all
selet . . .
from salesnew sn;
那么当你查询视图时,无论时间段如何,你都应该看到数据。
【讨论】: