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 上。
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 上。