java中查询最大值,在线等!急!急!急!

来源:百度知道 编辑:UC知道 时间:2024/06/02 06:31:01
我用的是SQLServer2000,JDBC驱动,查询语句是这样的:
String sql="select idNum from StuInfo";
ResultSet rs =stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("idNum"));
......
这样一点问题也没有,
但是把查询语句改成查询那一列中的最大值就无法通过:idNum为int形的.
String sql="select MAX(idNum) from StuInfo";
ResultSet rs =stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getInt("idNum"));
}
把while改成if也是一样的.出现如下错误:
java.sql.SQLException:[Microsoft][SQLServer 2000 Driver for JDBC]Invalid column name:idNum
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getColumnOrdina(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at SQLServerTest.main(SQLSErverTest.java:19)
我哪里错了?请指点,万分感激!

max(idNum) as maxNum

getInt("maxNum")

已经不存在 idNum了啊

你求的是max,要给一个别名的

或者按顺序取

String sql="select MAX(idNum) from StuInfo";
sql里面有select MAX(idNum) from StuInfo这样的语句吗??好象得查出来然后才来求max的吧??我对sql不是很熟悉,你自己想想咯

你用String sql="select MAX(idNum) from StuInfo"; ResultSet rs =stmt.executeQuery(sql);
<br>返回的结果集已经和以前的表不一样了,所以你再在System.out.println(rs.getInt("idNum")); 中使用"idNum"这个字段是不存在的
<br>因为这个时候的结果集里面只有一个这个字段的最大值,而上面你最先用的那个方法在程序的结果集里是同样的表,记录也存在程序当然没有问题
<br>还有你找问题要看下面的报错的,下面报的是idNum这个字段残缺,所以这个与是用if还是 while没有关系的
<br>希望这个问题能顺利解决