在Oracle中,通过过滤“虚拟”
rownum
列,可以限制任意查询返回的行数。考虑以下示例,该示例最多将返回10行。
SELECT * FROM all_tables WHERE rownum <= 10
在Ingres中是否有类似的简单通用方法?
Select First 10 * from myTable
选择*从myTable限制10个不起作用。
发现了一种可能的解决方案:
TIDs 是“元组标识符”或行地址。TID包含页面编号和相对于页面边界的行偏移量的索引。TIDs目前被实现为4字节整数。TID在表中唯一标识每一行。每行都有一个TID。TID的高23位是行所在页面的页码。可以通过名称“tid”在SQL中寻址TID。
因此,您可以使用类似于以下内容来限制返回的行数:
select * from SomeTable where tid < 2048
该方法返回的行数有些不准确。但对我的要求来说还是可以的,因为我只想限制来自非常大的结果集返回的行,以加快测试速度。
嗨,Craig。很抱歉,我进行了忍者编辑。
不,Limit 10无法使用,我错误地认为它是标准SQL,被所有人支持。Ingres使用(根据文档)“First”来解决这个问题。
嘿,来自斯德哥尔摩的忍者编辑!别担心,我已经确认“first X”很好用,比我想出来的解决方案要好得多。谢谢!