select 德比前几行的简单方法?

Simple way to select first few rows in derby?

Derby 没有 rownum 功能?

在 oracle 中,我可以 select 前 3 行,如下所示。

select * from a where rownum < 3

here中,他们建议如下。但这很乏味。

SELECT * FROM (
  SELECT
    ROW_NUMBER() OVER (ORDER BY key ASC) AS rownumber,
    columns
  FROM tablename
) AS foo
WHERE rownumber <= n 

请注意,Derby 还支持 FETCH FIRST 语法,如下所述:http://db.apache.org/derby/docs/10.11/ref/rrefsqljoffsetfetch.html#rrefsqljoffsetfetch

Derby 有意避免非标准 SQL 构造。正如您正在学习的那样,使用此类特定于供应商的服务可能很方便,但也可能导致应用程序无法移植。

使用标准 SQL 语法的优点是,当您将应用程序移至另一个 DBMS 实现时,不太可能出现兼容性问题。 Derby 对标准 SQL 的严格遵守在这种情况下可能是一个好处:如果您使用像 Derby 这样的 DBMS 开发您的应用程序,您很可能会成功地将您的应用程序部署到另一个不太标准的 DBMS 上。