Derby DB SQL,选择从行号开始的行



如何在 Derby DB 的 SQL 查询中选择第 X 行到 Y 行?

例如:

    我想选择第 15
  • - 30 行,但不是前 15 行。
  • 选择从第 30 行开始的所有行。

我尝试了LIMIT和ROWNUM,但它们不起作用。如何在德比郡做到这一点?

根据常见问题解答

Derby 不支持 LIMIT 语法。但是,Derby 10.4 添加了 ROW_NUMBER 函数,Derby 10.7 添加了 OFFSET 和 FETCH 子句。

Derby 还支持限制通过 JDBC 的查询返回的行数。
<...>

从 10.4.1.3 版本开始,Derby 还支持使用 ROW_NUMBER 函数限制行数。
<...>

ROW_NUMBER 函数还可用于选择以偏移量开头的有限数量的行,例如:
<...>

SELECT * FROM ( 
    SELECT ROW_NUMBER() OVER() AS rownum, myLargeTable.* 
    FROM myLargeTable 
) AS tmp 
WHERE rownum > 200000 AND rownum <= 200005; 

如果您使用的是 Derby 10.7 或更高版本,您还可以使用 OFFSET 和 FETCH 子句

SELECT * FROM T ORDER BY I 
    OFFSET 10 ROWS 
    FETCH NEXT 10 ROWS ONLY

最新更新