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