SQL语句:
String sql = "select * FROM mybooks a," + "(select top ? id from" + "(select top ? * from mybooks where price >= ? AND price <= ? order by id desc) b " + "order by id desc) c " + "where a.id = c.id order by c.id desc"原因:sql不支持为select top ? 预编译
解决办法:1.换成动态拼接
String sql = "select * FROM mybooks a," + "(select top %s id from" + "(select top %s * from mybooks where price >= ? AND price <= ? order by id desc) b " + "order by id desc) c " + "where a.id = c.id order by c.id desc";sql = String.format(sql, 3, 3);
2.在?号加括号
String sql = "select * FROM mybooks a," + "(select top (?) id from" + "(select top (?) * from mybooks where price >= ? AND price <= ? order by id desc) b " + "order by id desc) c " + "where a.id = c.id order by c.id desc";原作者处:http://www.blogjava.net/jzone/articles/305388.html