【问题标题】:How to limit result set size for arbitrary query in Ingres?如何限制 Ingres 中任意查询的结果集大小?
【发布时间】:2010-09-08 03:42:58
【问题描述】:

在 Oracle 中,可以通过过滤“虚拟”rownum 列来限制任意查询中返回的行数。考虑以下示例,它最多返回 10 行。

SELECT * FROM all_tables WHERE rownum 

在 Ingres 中是否有一种简单、通用的方法来做类似的事情?

【问题讨论】:

    标签: sql oracle ingres


    【解决方案1】:

    您好,来自斯德哥尔摩的忍者编辑!不用担心,已经确认“第一个 X”运行良好,并且是比我想出的更好的解决方案。谢谢!

    【讨论】:

      【解决方案2】:

      嘿克雷格。对不起,我做了一个忍者编辑。 不,Limit 10 不起作用,我误以为这是大家都支持的标准 SQL。 Ingres 使用(根据文档)“First”来解决问题。

      【讨论】:

        【解决方案3】:

        select * from myTable limit 10 不起作用。

        发现了一种可能的解决方案:

        TID 是“元组标识符”或行地址。 TID 包含 页码和相对于行的偏移量的索引 页面边界。 TID 目前实现为 4 字节整数。 TID 唯一标识表中的每一行。每一行都有一个 时间。 TID 的高 23 位为页面的页码 行发生的位置。 TID 可以在 SQL 中通过名称来寻址 “时间。”

        因此,您可以使用以下方式限制返回的行数:

        select * from SomeTable where tid 
        
        

        该方法返回的行数有些不准确。但这对我的要求很好,因为我只想限制从非常大的结果集中返回的行以加快测试速度。

        【讨论】:

          【解决方案4】:

          公然改变我的答案。 “Limit 10”适用于 MySql 和其他,Ingres 使用

          Select First 10 * from myTable
          

          Ref

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-08-04
            • 2012-01-31
            • 2017-12-28
            • 1970-01-01
            • 1970-01-01
            • 2022-10-19
            • 1970-01-01
            相关资源
            最近更新 更多