当前位置: 首页 > 面试题库 >

在Oracle中的SQL查询中获取固定数量的行[重复]

双恩
2023-03-14
问题内容

这个问题已经在这里有了答案

使用Oracle分页 (6个答案)

6年前关闭。

请帮助我在Oracle数据库中编写一个SQL查询。有一个名为tbl的表,它有12行。我想先选择前4行,然后选择下4行和后4行。

任何人都可以告诉我如何在Informix中执行此操作。


问题答案:

您可以使用rownum

select * from (select t.*, rownum rn from tbl t) where rn between 1 and 4;
/
select * from (select t.*, rownum rn from tbl t) where rn between 5 and 8;
/
select * from (select t.*, rownum rn from tbl t) where rn between 9 and 12;
/

如果您正在使用order by子句,请使用row_number()(documentation)

select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 1 and 4;
/
select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 5 and 8;
/
select * from (select t.*, row_number() over (order by column_name) rn from tbl t) where rn between 9 and 12;
/


 类似资料:
  • 问题内容: 我是Oracle的新手(虽然熟悉SQL),并且必须编写一个相当复杂的查询,其中多次使用了从当前日期得出的值。不必每次都计算值,而是为此声明一个常量似乎是显而易见的。 但是,当我随后尝试在后续的SELECT语句中使用DateIndex常量(我希望该常量基于“ DateIndex”返回值)时,解析器告诉我它正在执行SELECT INTO。 我所拥有的(简化为最低形式)是… 选择表时只能使用

  • //这是Jdbc代码 当我在Oracle sql developer中运行上面的查询时,它工作得很好,但是当我用上面的jdbc代码运行它时,它会抛出不是所有变量绑定的异常。如何在JDBC中运行上述查询

  • 问题内容: 我一直在试图弄清楚为什么以下代码未在我的ResultSet中生成任何数据: 另一方面,以下各项可以正常运行: SCHOOL的数据类型为CHAR(9字节)。除了setString,我还尝试了: 我完全留意接下来要研究什么;Eclipse调试器说,即使在setString或setCharacterStream之后,SQL查询也不会更改。我不确定这是因为设置参数不起作用,还是调试器根本无法在

  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能重复: MySQL中的ROW_NUMBER() 这可能吗?我想按特定的顺序获取一堆结果,然后通过其ID找出行的位置,例如: 我想按字母顺序获得1的位置,它将返回2 问题答案: 从这个答案>> ROW_NUMBER()在MySQL中修改

  • 问题内容: 这个问题已经在这里有了答案 : 使用WHERE子句将数组传递给查询 (18个答案) 5年前关闭。 我在使用WHERE子句中的数组进行SQL查询时遇到问题。 例如: 我的阵列: 我的MySQL陈述: 有什么办法可以实现?我自己这样解决了它: 但是,如果我的数组中有成千上万个条目,那么SQL语句将太大且太慢,对吗? 谢谢 问题答案: 您可以使用mysql的IN函数 编辑:正如amosrev

  • 我需要一种方法来收集在Oracle DB(Oracle数据库11g)中执行的所有查询在过去的几个小时内,无论查询有多快(这将用于计算sql覆盖率后,对我的应用程序运行测试,其中有几个点执行查询)。 我不能使用像V$SQL这样的表,因为不能保证查询会在那里保持足够长的时间。我似乎可以使用DBA_HIST_SQLTEXT,但是我没有找到过滤掉当前测试运行前执行的查询的方法。 所以我的问题是:我可以使用