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

选择前150行,然后选择下150行,依此类推?

艾令秋
2023-03-14
问题内容

如何在oracle sql中的表中选择前x行,然后选择下x行,依此类推?我知道我可以使用TOP / LIMIT,然后得到第一个x

select a from b limit 150 =>获得前150行。

编辑:为什么?我想将前150个输出复制到文件中,然后将后150个复制到另一个文件中,依此类推…


问题答案:

在Oracle中,您有一个不错的选择rownum:它是一个伪列。它对结果集中的记录编号。给出了一条符合select语句中where条件的第一个记录rownum=1,并且随后每个满足相同条件的记录都会增加rownum

SELECT 
    a, b
FROM
    (SELECT rownum rn, a, b from table WHERE c=some_value ORDER BY some_column)
WHERE 
    rn BETWEEN 150 AND 300;

(感谢@Mark Ba​​nnister)

如果将ORDER BY子句嵌入子查询中,并将ROWNUM条件放置在顶级查询中,则可以强制ROWNUM条件在行排序之后应用。



 类似资料:
  • 我试图让用户从JSF中的下拉列表中选择一个集合项。这是我正在使用的代码: 这是MyBean的代码: 如果需要,我的getter和setter为用户: 我的问题是,当它打印“所选用户是”时,没有写入用户。toString(),但用户列表。toString()!就像SelectOne菜单一样,它的设置不正确,但我已经搜索了很多。有人能帮忙吗?谢谢,安

  • 问题内容: 我想在名为 id的 列( 主键)中 从MySQL数据库中选择最后50行。目标是行应该被分类 ID 在 ASC 秩序,这就是为什么这个查询不工作 同样值得注意的是,可以对行进行操作(删除),这就是为什么以下查询也不起作用的原因 问题 :如何从MySQL数据库中检索可以操纵并按ASC顺序排列的最后N行? 问题答案: 您可以使用子查询来做到这一点: 这将从中选择 最后 50行,然后按升序对其

  • 通过id选择一行应该是一件简单的事情,但我在如何将其映射到对象时遇到了一些麻烦。 我发现这个问题是寻找同样的东西,但给出的答案对我不起作用。 目前我有这是工作,但它似乎没有那么优雅,因为它应该。 我觉得获取一个列表,然后使用是很大的,而且没有必要。我一定是漏掉了什么。

  • 我有一个工作数据表,可以列出餐馆的对象。我想删除/编辑选定的,但当我选择一个以下异常显示: 这是桌子: 现在所有ID都显示在表中,但在选择时会显示异常。我试着按照这个例子做每件事。但它们甚至没有rowKey属性。 如果相关的话,这是豆子。 } Primefaces:5.3 JSF:2.2

  • 第二种形式的条件执行是选择执行,选择执行中存在有两种可能,由条件表达式来决定哪种可能被执行。语法看起来像这样: if( x%2 == 0) { cout << "x is even" << endl; }else{ cout << "x is odd" << endl; } 如果x除以2得到的余数是0,则我们知道X是偶数,代码会输出一条信息表明此意。由于条件非真即假,因而有且仅有一条语句

  • 问题内容: 我只需要检索大小字段总和为<= 150的特定记录。我有下面的桌子… 输出应为… 例如,如果我们加上70,50,25,我们得到145,即<= 150。 我将如何编写查询来完成此任务? 问题答案: 这是一个查询,将产生以上结果: 但是,您描述的想要选择最适合给定大小的用户的问题是装箱问题。这是一个NP- Hard 问题,用ANSI SQL很难解决。但是,以上内容似乎返回了正确的结果,但实际