Sql oracle10g中的select top等效项是什么

Sql oracle10g中的select top等效项是什么,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,我目前正在开发一个查询数据库的应用程序-Oracle 10g。 在Oracle中是否有与我们在SQL Server中使用Top(x)相同的东西?我需要数据,以便将其添加到表中。 任何帮助都将不胜感激 请注意,我不想要5个最高值。我想要5个最高值。它是关于顺序位置,即添加到表中的行的物理顺序。即使按索引也没有任何排序。假设插入的数据主键值递增(通过序列或日期/时间戳值),则可以执行以下操作: SELECT * FROM ( SELECT * FROM table_name OR

我目前正在开发一个查询数据库的应用程序-Oracle 10g。 在Oracle中是否有与我们在SQL Server中使用Top(x)相同的东西?我需要数据,以便将其添加到表中。 任何帮助都将不胜感激


请注意,我不想要5个最高值。我想要5个最高值。它是关于顺序位置,即添加到表中的行的物理顺序。即使按索引也没有任何排序。

假设插入的数据主键值递增(通过序列或日期/时间戳值),则可以执行以下操作:

SELECT *
FROM   (
  SELECT *
  FROM   table_name
  ORDER BY primary_key_column
)
WHERE ROWNUM <= 10;

阅读并询问Tom关于Top-n和分页的问题:您是在表中存储创建的日期类型还是序列?如果没有,则可能无法解决问题,因为Oracle不存储将行添加到表中的顺序(不能使用rowid、rownum或任何默认顺序来获取将行插入到表中的顺序)。可能重复的@MT0不会重复。我不想要5个最高值。我想要5个最高值。在加入重复的潮流之前,你们应该仔细阅读这个问题。这是关于物理顺序的顺序。@KrisJohnston非常感谢您的链接。理解真的很有帮助。你的回答没有回答我的问题。我重复一遍,我希望前n行按顺序添加到表中。请给我一个答案。@MukeshAdhvaryu除非(a)您维护一个具有唯一列的列,并为每个连续插入指定递增值(在这种情况下,您可以按我所示的顺序进行排序),否则您无法按行添加到表中的顺序获取行如果您从未从表中删除然后插入行(或进行行移动),并且数据库按照创建的顺序将数据插入到数据文件中,并按照相同的顺序(两者都不保证)读回数据,则指定“没有顺序依据”可以工作(根据我的第二次查询)。+1很好,完整的答案。。。我考虑提交一个与您类似的答案,但由于不清楚表中是否有一个序列或创建日期数据类型,所以我决定只留下一个关于这个问题的评论,然后继续前进……为了它的价值,我认为这个答案是接受的,因为根本没有答案。我们不能得到行的物理顺序,除非我们做一些魔术。是不是很遗憾?@MT0虽然我接受了你的回答,但我仍然坚持认为这不是一个重复的问题,这从你自己的回答中可以明显看出,当你说“你不能按行添加到表中的顺序获取行,除非…”时,无论如何,这没有什么区别,不是吗?
SELECT *
FROM   table_name
WHERE  ROWNUM <= 10;