From 493f69c64e459b752af2424da93baf3ba372db44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=AB=98=E9=93=81?= Date: Wed, 29 Jun 2016 02:19:10 +0800 Subject: [PATCH] bug fixed db2 PageUtils.limit --- src/main/java/com/alibaba/druid/sql/PagerUtils.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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"));