如何在Ingres中限制任意查询的结果集大小?

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

SELECT * FROM all_tables WHERE rownum <= 10

在Ingres中是否有类似的简单通用方法?

4个回答

6
< p > 明显更改我的答案。"Limit 10" 对于 MySql 和其他数据库是有效的,Ingres 使用 < /p >
Select First 10 * from myTable

Ref


2

选择*从myTable限制10个不起作用。

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

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

因此,您可以使用类似于以下内容来限制返回的行数:

select * from SomeTable where tid < 2048

该方法返回的行数有些不准确。但对我的要求来说还是可以的,因为我只想限制来自非常大的结果集返回的行,以加快测试速度。


0

嗨,Craig。很抱歉,我进行了忍者编辑。

不,Limit 10无法使用,我错误地认为它是标准SQL,被所有人支持。Ingres使用(根据文档)“First”来解决这个问题。


0

嘿,来自斯德哥尔摩的忍者编辑!别担心,我已经确认“first X”很好用,比我想出来的解决方案要好得多。谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接