//oracle
public static String query(String sql,int page,int length){
if( page<=0 ) {
page = 1;
}
int begin = (page-1)*length;
int end = page*length;
String qs =" SELECT * FROM ( SELECT row_.*, ROWNUM rownum_ FROM ( "
+ sql
+ " ) row_ WHERE ROWNUM <= " + end + ") WHERE rownum_ >" +begin;
return qs;
}
/**
* 分页(sqlserver2000)* 例: "SELECT * FROM (SELECT TOP 10 * FROM (SELECT TOP 10 id,name,age "+
" FROM user where 1=1 order by id desc ) TB2 order by id asc) TB3 order by id desc ";
* @param sqlFields 搜索字段
* @param tableName 表名
* @param where where条件
* @param orderby 排序(写上desc,asc)
* @param page 当前页
* @param length 显示条数
* @return
*/
public static String queryBySqlServer(String sqlFields,String tableName ,String where,String orderby,int page,int length){
if( page<=0 ) {
page = 1;
}
String cutorderby = "";
orderby = orderby.toLowerCase();
if(orderby.contains("desc")){
cutorderby = orderby.replace("desc", "asc");
}else{
cutorderby = orderby.replace("asc", "desc");
}
StringBuffer sb = new StringBuffer();
sb.append("SELECT * FROM (SELECT TOP ");
sb.append(length);
sb.append(" * FROM (SELECT TOP ");
sb.append(page*length).append(" ");
sb.append(sqlFields).append(" ");
sb.append(" FROM ");
sb.append(tableName).append(" ");
sb.append(where).append(" ");
sb.append(orderby).append(" ");
sb.append(" ) TB2 ");
sb.append(cutorderby).append(" ");
sb.append(" ) TB3 ");
sb.append(orderby);
return sb.toString();
}