【问题标题】:SQL Developer query: populating 1 column with 2 tablesSQL Developer 查询:用 2 个表填充 1 列
【发布时间】:2021-08-20 22:12:45
【问题描述】:

我有一个名为 Sales 的表,其中包含自 1990 年以来的数据,但在 2020 年,数据开始来自另一个名为 SalesNew 的表。因此,如果我查询第一个表,我会在 2020 年之后得到空值,如果我查询第二个表,我会在 2020 年之前得到空值。有没有办法从两个表的一个列中检索,所以我不会得到空值?非常感谢!

【问题讨论】:

    标签: java sql oracle


    【解决方案1】:

    您可以使用 COALESCE 函数,它返回第一个非空值。例如。: SELECT COALESCE(sales.col1, salesnew.col1) from ...

    详情:https://www.oracletutorial.com/oracle-comparison-functions/oracle-coalesce/

    【讨论】:

    • 对于潜伏者:这也是 T-SQL 中的有效答案
    【解决方案2】:

    您可以使用视图来组合两个表中的数据:

    create view v_sales as (
        select . . . 
        from sales s
        union all
        selet . . .
        from salesnew sn;
    

    那么当你查询视图时,无论时间段如何,你都应该看到数据。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多