New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
postgresql的nulls last 语法不支持吗? #1637
Comments
能提供完整sql么? |
SELECT
u.userid,
u.phonenumber,
u.cdate,
u.udate,
u.wechatid,
u.wechatnickname,
u.wechattime,
b. ID,
b.username serviceStaffName,
u.appid,
s. ID servicegroupid,
n.total_amount blackNumber
FROM
users u
LEFT JOIN user_servicegroup s ON u.userid = s.userid
LEFT JOIN jcs_user_base b ON s.servicestaffid = b. ID
LEFT JOIN jcs_user_purchase_record r ON u.userid = r.user_id
LEFT JOIN user_black_article_number n ON u.userid = n.userid
WHERE
u.isactive = TRUE
ORDER BY
n.total_amount DESC NULLS LAST
上面这个是完整sql,下面是分页用到的工具类,貌似是org.springframework.jdbc.core.support包下的分页工具
private Pagination getPagination(String sql, Map<String, String> searchParams,
int pageNumber,
int pageSize ){
String querySql = sql;
PageSqlData sqlData = new PageSqlData(sql, querySql);
Pagination page = new Pagination(jdbcTemplate, sqlData,
pageNumber, pageSize,"postgresql");
return page;
}public class PageSqlData {
private String countSql;
private String querySql;
public PageSqlData(String countSql, String querySql) {
this.countSql = countSql;
this.querySql = querySql;
}
public String getCountSql() {
return countSql;
}
public void setCountSql(String countSql) {
this.countSql = countSql;
}
public String getQuerySql() {
return querySql;
}
public void setQuerySql(String querySql) {
this.querySql = querySql;
}
}public Pagination(JdbcTemplate jdbcTemplate, PageSqlData pageSqlData, int currentPage, int numPerPage,String postgresql){
if(jdbcTemplate == null){
throw new IllegalArgumentException("com.cfs.data.util.Pagination.jTemplate is null,please initial it first. ");
}else if(pageSqlData == null || pageSqlData.getCountSql().equals("")){
throw new IllegalArgumentException("com.cfs.data.util.Pagination.sql is empty,please initial it first. ");
}
//设置每页显示记录数
setNumPerPage(numPerPage);
//设置要显示的页数
setCurrentPage(currentPage);
//计算总记录数
StringBuffer totalSQL = new StringBuffer(" SELECT count(*) FROM ( ");
totalSQL.append(pageSqlData.getCountSql());
totalSQL.append(" ) totalTable ");
//总记录数
setTotalRows(jdbcTemplate.queryForInt(totalSQL.toString()));
//计算总页数
setTotalPages();
//计算起始行数
setStartIndex();
//计算结束行数
setLastIndex();
System.out.println("lastIndex=" + lastIndex);
//装入结果集
setResultList(jdbcTemplate.queryForList(getPostgresSQLPageSQL(
pageSqlData, startIndex, numPerPage)));
}
hellowangmh@163.com
发件人: 高铁
发送时间: 2017-03-13 23:08
收件人: alibaba/druid
抄送: HelloWangmh; Author
主题: Re: [alibaba/druid] postgresql的nulls last 语法不支持吗? (#1637)
能提供完整sql么?
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Caused by: com.alibaba.druid.sql.parser.ParserException: syntax error, error in :'esc NULLS LAST ) totalTable ',expect RPAREN, actual IDENTIFIER NULLS
sql没问题,但是程序跑起来会报这个错,求解救
The text was updated successfully, but these errors were encountered: