diff --git a/src/main/java/com/alibaba/druid/sql/PagerUtils.java b/src/main/java/com/alibaba/druid/sql/PagerUtils.java index df50903727..2b67e23ee4 100644 --- a/src/main/java/com/alibaba/druid/sql/PagerUtils.java +++ b/src/main/java/com/alibaba/druid/sql/PagerUtils.java @@ -159,8 +159,16 @@ public class PagerUtils { SQLAggregateExpr aggregateExpr = new SQLAggregateExpr("ROW_NUMBER"); SQLOrderBy orderBy = select.getOrderBy(); + + if (orderBy == null && select.getQuery() instanceof SQLSelectQueryBlock) { + SQLSelectQueryBlock selectQueryBlcok = (SQLSelectQueryBlock) select.getQuery(); + orderBy = selectQueryBlcok.getOrderBy(); + selectQueryBlcok.setOrderBy(null); + } else { + select.setOrderBy(null); + } + aggregateExpr.setOver(new SQLOver(orderBy)); - select.setOrderBy(null); queryBlock.getSelectList().add(new SQLSelectItem(aggregateExpr, "ROWNUM"));