请问在oracle中如何实现效果就像在SQL Server中"select top " + pageSize + " * from tb_user where id not in (select top " + curPage*pageSize + " id from tb_user) and units_id=1"这个就能取出符合条件的前pageSize条信息(pageSize每页显示条数,curPage当前页数)
麻烦谁能帮我写个例子吗?谢谢了

解决方案 »

  1.   

        protected String getSql() {
            String baseSql;
            baseSql = "select * from " + baseTable;
            //判断附加条件是否为空,如果不为空就添加
            if (!CharSet.nullToEmpty(whereLimit).equals("")) {
                baseSql += " where " + whereLimit;
            }        //初始的记录号, 加1,因为在写sql时,条件写成rownum<startRow, 例如开始是20, 就必须写成rownum<21
            startRow = pageSize * (pageNo - 1) + 1;
            //做个过滤
            startRow = (startRow < 0) ? 0 : startRow;        //接着设定结束的记录号
            endRow = startRow + pageSize;        //接着,拼接sql语句
            String sql = "select * from (" + baseSql + ") where rownum < " + endRow
                    + " minus " + "select * from (" + baseSql + ") where rownum < "
                    + startRow;
            //最后,加上排序orderBy
            if (!CharSet.nullToEmpty(orderBy).equals("")) {
                sql = "select * from (" + sql + ") order by " + orderBy;
            }
            return sql;
        }参考一下吧!把你的SQL 带进去,就可以了。