|
@@ -61,12 +61,13 @@ public class SQLServer2005Dialect implements IDialect {
|
|
|
if (StringUtils.isEmpty(orderby)) {
|
|
|
orderby = "ORDER BY CURRENT_TIMESTAMP";
|
|
|
}
|
|
|
-
|
|
|
+ long firstParam = offset + 1;
|
|
|
+ long secondParam = offset + limit;
|
|
|
String sql = "WITH selectTemp AS (SELECT " + distinctStr + "TOP 100 PERCENT " +
|
|
|
" ROW_NUMBER() OVER (" + orderby + ") as __row_number__, " + pagingBuilder +
|
|
|
") SELECT * FROM selectTemp WHERE __row_number__ BETWEEN " +
|
|
|
//FIX#299:原因:mysql中limit 10(offset,size) 是从第10开始(不包含10),;而这里用的BETWEEN是两边都包含,所以改为offset+1
|
|
|
- FIRST_MARK + " AND " + SECOND_MARK + " ORDER BY __row_number__";
|
|
|
- return new DialectModel(sql, offset + 1, offset + limit).setConsumerChain();
|
|
|
+ firstParam + " AND " + secondParam + " ORDER BY __row_number__";
|
|
|
+ return new DialectModel(sql, firstParam, secondParam);
|
|
|
}
|
|
|
}
|