【问题标题】:How to query from multiple tables of date range in oracleoracle如何查询多个日期范围的表
【发布时间】:2018-05-05 01:45:28
【问题描述】:

我有如下 schema.ITEM_DATA_2017_01_01, schema.ITEM_2017_01_02, schema.ITEM_DATA_201_01_03 .... 的 oracle 表,具有相同的列名。实际上,这些是运行作业时将创建的历史表。 如何使用 sql developer 在给定日期范围的所有表中执行搜索。 请帮忙。

问候, 拉梅什

【问题讨论】:

  • 你为什么要创建这样的表?修改作业以使用一个历史记录表并向其中添加一个日期列,该列可以包括添加项目的时间,然后您就绕过了问题。
  • 是否真的需要专门使用 SQL Developer 来执行此操作?我使用 PL/SQL Developer,所以听起来我帮不上忙。

标签: sql oracle oracle-sqldeveloper


【解决方案1】:

您始终可以使用旧的联合,但我相信您正在寻找这样的东西,据我所知,Oracle 不支持:https://cloud.google.com/bigquery/docs/reference/legacy-sql#table-date-range

【讨论】:

  • 感谢您的建议,对联合部分有什么帮助吗?
  • 我们不知道您感兴趣的列,但基本上是:select * from ITEM_DATA_2017_01_01 union all select * from ITEM_DATA_2017_01_02 等(如果数据可以跨表复制,请使用 union 而不是 union all )
【解决方案2】:

这不是很好的设计,只是为了复杂的搜索而​​做这样一组表是很奇怪的。

如果你确定你真的需要这种奇怪的方法,你可以使用UNION ALL 一起制作这张表。也许您应该创建一个联合视图并在创建表的工作中对其进行修改,也许您应该使用给定的数据范围动态构建此语句。但在大多数情况下,更好的方法是放弃坏主意,只使用一张表,可选择分区。

【讨论】:

    猜你喜欢
    • 2014-06-09
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多