【问题标题】:Is there any replacement for ROWNUM in Oracle?Oracle 中的 ROWNUM 有替代品吗?
【发布时间】:2018-11-02 21:35:58
【问题描述】:

我有对 Oracle 数据库的 JPA 本机查询。我知道限制结果的唯一方法是在 Oracle 中使用“rownum”,但由于某种原因,我必须使用的 jar 驱动程序的查询解析器无法识别它。

Caused by: java.sql.SQLException: An exception occurred when executing the following query: "/* dynamic native SQL query */ SELECT * from SFDC_ACCOUNT A  where  SBSC_TYP  = ?   and  rownum <= ?".  Cause: Invalid column name 'rownum'.  On line 1, column 90.  [parser-2900650]
com.compositesw.cdms.services.parser.ParserException: Invalid column name 'rownum'.  On line 1, column 90.  [parser-2900650]

我怎样才能摆脱它?

【问题讨论】:

标签: oracle jdbc jpa-2.1


【解决方案1】:

ANSI 标准如下所示

SELECT *
FROM (
SELECT
T.*,
ROW_NUMBER() OVER (PARTITION BY T.COLUMN ORDER BY T.COLUMN) ROWNUM_REPLACE
FROM TABLE T
)
WHERE
1=1
AND ROWNUM_REPLACE < 100

或者您也可以使用以下内容:

SELECT * FROM TABLE T
ORDER BY T.COLUMN
OFFSET 0 ROWS
FETCH NEXT 100 ROWS ONLY;

【讨论】:

    猜你喜欢
    • 2010-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2017-03-05
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多