【问题标题】:How to make a smaller table from a larger one (Oracle) [duplicate]如何从较大的表中创建一个较小的表(Oracle)[重复]
【发布时间】:2018-08-31 14:22:44
【问题描述】:

假设您正在使用一个名为 LotOFData 的数据库,其中包含大量数据。我想从这个大型数据库中获取一些方面,并使其成为自己的小型数据库,称为 LessData,然后将该数据库用于我的下一个查询。但我不知道该怎么做。

所以我的 LessData 将是我从这个查询中得到的所有数据

    select *  from LotOFData where shapes = shape1 or shapes = shape2

这将是我想使用该 LessData 表进行的新查询

    select * from(
    (select part from LessData where shapes = shape1) 
    natural join (select part from LessData where shapes = shape2) )

【问题讨论】:

  • 这个问题与数据库或表有关吗?
  • 我根据描述 database 的问题投票决定关闭,这是一个过于宽泛的问题。如果您只是询问获取数据库中单个 的子集,请编辑您的问题。
  • 我不确定我是否理解您希望能够运行的查询;自然连接不会返回任何行 - shapes 是一个公共列,因此它将使用它连接,并且没有行可以有 shapes 等于“shape1”和“shape2”?无论如何,你确定你真的想要一个新的永久表,它会变得陈旧吗?您是否真的在尝试简化您的查询 - 所以可能真的需要 CTE,或者(如果您经常需要)视图,甚至物化视图;或者可能是一个临时表?

标签: oracle


【解决方案1】:

LotOFData 和 LessData 在 SQL 中称为表。在 Oracle 中,您可以使用 create table 作为 select 语句来创建较小的表,如下所示:

create table LessData as select * from LotOFData 
where shapes = 'shape1' or shapes = 'shape2';

假设形状列是一个字符串,我在形状周围加上引号。

要查询 LessData,你只需使用这个:

select * from LessData;

该选择将获取 shape1 和 shape2 的数据。

鲍比

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多