限制oracle和postgres中查询返回的行数

时间:2018-04-03 11:11:12

标签: sql oracle postgresql jpa

我正在使用JPA Criteria API,我有一个要求我必须使用UNION子句,并且由于JPA不支持set操作,我不得不创建一个本机sql查询。

在此查询中,我必须使用JPA Criteria API限制返回的行数,具体操作如下:

typedQuery.setFirstResult(gridParams.getStartRow());
typedQuery.setMaxResults(gridParams.getEndRow() - Math.max(0, gridParams.getStartRow()));

我们的应用程序在Oracle 12c和Postgres中运行,所以我遇到的问题是Oracle和Postgres使用不同的语法来限制结果。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

两个数据库系统都支持ANSI标准fetch first

select *
from some_table
order by something
OFFSET 10 ROWS
FETCH FIRST 10 ROWS ONLY;

Oracle开始支持12.1