代码拉取完成,页面将自动刷新
最新 beetlSQl 3.12.2, SQL Server 2008
(好像前面某个版本正常,不记得了)
如果语句中有 order by, 在生成分页语句出错,如
SELECT
-- @pageTag(){
tt.*
-- @}
FROM table1 tt
-- @pageIgnoreTag(){
order by tt.id
-- @}
生成的 count 正常
SELECT count(*) FROM table1
而下面不正常,多了 order by
with query as (
select inner_query.*, row_number() over (order by current_timestamp) as beetl_rn
from ( SELECT top(?) tt.* FROM table1 tt order by tt.id
order by current_timestamp ) inner_query )
select * from query where beetl_rn between ? and ?
正常应用使用语句自有的 order by
你配置的是SqlServerStyle,还是SqlServer2012Style,这俩个都是网友提供的分页算法,没听说哪里出问题
你说的问题是在哪里?
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
配置的是 SqlServerStyle,我是在 Mapper 访问的, 生成的SQL确实如上,奇怪问题在哪里
@SqlResource("table1")
public interface Table1Mapper extends BaseMapper<Table1> {
PageResult<Table1> pageQuery(Object paras, PageRequest pageRequest);
}
pageQuery
===
SELECT
-- @pageTag(){
tt.*
-- @}
FROM table1 tt
-- @pageIgnoreTag(){
order by tt.id
-- @}
问题出现在,SqlServerStyle 中,总是返回固定 order by current_timestamp
@Override
public String getOrderBy() {
//重写getOrderBy,如果设置了分页的order by条件 则按 order by 否则添加一个 current_timestamp 来排序
return lineSeparator + appendExpress("text(' order by ' + _orderBy!'current_timestamp')" ) + " ";
}
估计使用 SqlServer 旧版本的人少了
登录 后才可以发表评论