【问题标题】:Restrict number of rows retrieved in Ingres select query限制 Ingres 选择查询中检索的行数
【发布时间】:2009-07-03 09:36:59
【问题描述】:

我想知道是否有办法在 Ingres 的选择查询中选择后续的一堆行。比如前500行可以通过select first 500 from tablename来选择,但是如果我想选择第501到1000行,有什么办法吗?

【问题讨论】:

    标签: sql ingres


    【解决方案1】:

    您可以通过以下方式使用 OFFSET 子句:

    SELECT col_name 
    FROM table 
    WHERE col_name = 'value' 
    OFFSET m FETCH FIRST n ROWS ONLY
    

    例如

    SELECT *
    FROM table  
    OFFSET 501 FETCH FIRST 500 ROWS ONLY
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      SELECT FIRST 10 * FROM table
      

      SELECT FIRST 10 field1, field2 FROM table
      

      我在 Ingres 9.2 中对其进行了测试,它可以正常工作

      另请参阅: How to limit result set size for arbitrary query in Ingres?

      【讨论】:

      • 谢谢阿德里安。我们明年将升级到 Ingres9.2,这样我就可以让它工作了。
      【解决方案3】:
      Select top 1000 * from table;
      

      在 10.0 中完美运行

      【讨论】:

        【解决方案4】:

        您可以尝试使用rownum var: 限制行号:

        SELECT * from TABLE
        WHERE rownum <=500
        

        我尚未针对您的问题对其进行测试,但它应该可以正常工作:

        SELECT * from TABLE
        WHERE rownum >500
        AND rownum <= 1000
        

        【讨论】:

        • Ingres 没有 rownum 列。有一个隐藏的 tid 列,但包含的值基于页码及其在页面中的位置。
        猜你喜欢
        • 2019-10-21
        • 1970-01-01
        • 2010-09-08
        • 1970-01-01
        • 2012-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多