MYSQL 的分页语句怎样转换成SQLserver的?


    public ArrayList<Score> getOnePage(int page,int size) throws Exception{
        ArrayList<Score> al = new ArrayList<>();
        initConnection();
        String sql = "SELECT * FROM score limit ?,? ";
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setInt(1, (page-1)*size);
        ps.setInt(2, size);
        ResultSet rs =  ps.executeQuery();
        getMoreScore(al, rs);
        closeConnection();
        return al;
    }

MSSQL使用row_number开窗函数分页
;with t as (select *,row_number() over (order by id) as RN from score)
select * from t where RN between ? and ?

sqlserver 限定行数的写法为 top

在sqlserver2012后支持 OFFSET 和 FETCH