【问题标题】:Oracle View from multiple tables with same kind of dataOracle 从具有相同类型数据的多个表中查看
【发布时间】:2012-03-13 18:43:42
【问题描述】:

我在 Oracle 中有一个视图,其中包含来自例如的客户数据。表 DEBTABLENL:

SELECT DEBTABLENL.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLENL.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLENL.NAME    AS DBName1
 , Etc, Etc FROM DEBTABLENL

是否可以扩展视图以包含来自不同表的相同类型的记录,在此示例中为 DEBTABLEBE

SELECT DEBTABLEBE.ACCOUNTNUMBER  AS DBDebnmbr
 , DEBTABLEBE.ELCSEARCHCODE   AS DBNameShort
 , DEBTABLEBE.NAME    AS DBName1
 , Etc, Etc FROM DEBTABLEBE

因此,我的所有来自 NL 和 BE 的客户都获得了一个视图。 我的 BE 客户在一个 MSSQL 数据库中,我将每天将其传输到我的 Oracle 数据库以获得一个大列表。 因为 Oracle 视图必须有记录,所以我不能反过来……

问候,

迈克

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    在两个查询中使用联合,例如:

    SELECT DEBTABLENL.ACCOUNTNUMBER  AS DBDebnmbr
     , DEBTABLENL.ELCSEARCHCODE   AS DBNameShort
     , DEBTABLENL.NAME    AS DBName1
     , Etc, Etc FROM DEBTABLENL
    UNION ALL
    SELECT DEBTABLEBE.ACCOUNTNUMBER
     , DEBTABLEBE.ELCSEARCHCODE
     , DEBTABLEBE.NAME
     , Etc, Etc FROM DEBTABLEBE
    

    【讨论】:

      【解决方案2】:

      假设两个表具有相同的结构,您可以将视图编写为:

      SELECT DEBTABLE.ACCOUNTNUMBER  AS DBDebnmbr
       , DEBTABLE.ELCSEARCHCODE   AS DBNameShort
       , DEBTABLE.NAME    AS DBName1
       , Etc, Etc 
      FROM (SELECT * FROM DEBTABLENL UNION ALL SELECT * FROM DEBTABLEBE) AS DEBTABLE
      

      如果您在现有视图中将其他表连接到 DEBTABLENL,则此方法意味着您只需将它们链接到别名 DEBTABLE 一次,而不是将它们分别链接到 DEBTABLENL 和 DEBTABLEBE,然后合并结果。

      【讨论】:

        猜你喜欢
        • 2018-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 2017-11-09
        • 2016-03-11
        • 2016-08-10
        相关资源
        最近更新 更多