How to limit result set size for arbitrary query in Ingres?

前端 未结 4 1056
小蘑菇
小蘑菇 2021-01-19 14:55

In Oracle, the number of rows returned in an arbitrary query can be limited by filtering on the \"virtual\" rownum column. Consider the following example, which

相关标签:
4条回答
  • 2021-01-19 15:28

    Hey Craig. I'm sorry, I made a Ninja Edit. No, Limit 10 does not work, I was mistaken in thinking it was standard SQL supported by everyone. Ingres uses (according to doc) "First" to solve the issue.

    0 讨论(0)
  • 2021-01-19 15:45

    Hey Ninja editor from Stockholm! No worries, have confirmed that "first X" works well and a much nicer solution than I came up with. Thankyou!

    0 讨论(0)
  • 2021-01-19 15:49

    Blatantly changing my answer. "Limit 10" works for MySql and others, Ingres uses

    Select First 10 * from myTable
    

    Ref

    0 讨论(0)
  • 2021-01-19 15:49

    select * from myTable limit 10 does not work.

    Have discovered one possible solution:

        TIDs are "tuple identifiers" or row addresses.  The TID contains the
        page number and the index of the offset to the row relative to the
        page boundary.  TIDs are presently implemented as 4-byte integers.
        The TID uniquely identifies each row in a table.  Every row has a
        TID.  The high-order 23 bits of the TID are the page number of the page
        in which the row occurs.  The TID can be addressed in SQL by the name 
        `tid.'
    

    So you can limit the number of rows coming back using something like:

    select * from SomeTable where tid < 2048

    The method is somewhat inexact in the number of rows it returns. It's fine for my requirement though because I just want to limit rows coming back from a very large result set to speed up testing.

    0 讨论(0)
提交回复
热议问题