我现在从数据库里查到的数据如下
  A  B  C
------------
  a  b   5
  a  b   @@
  b  c   df
  b  c   ss
  c  d   @@
  c  d   tt
  现在就是想得到这样的结果:如果有A,B相同的组合,那么输出C为@@的那条。如果@@不存在,则输出本组的第一条
比如说上述数据就输出
    a   b   @@
    b   c   df
    c   d   @@  公司里的代码格式比较固定,大神看看能不能实现。想在do-while里面全部实现?
  
String sql = "select * from ttt order by a,b,c";
// String sql = "select * from weather";
ResultSet rs = BaseDao.execQuery(sql);
String a = null;
String b = null;
String c = null;
boolean isLoop = true;
do {
if(rs.next()){
a = rs.getString("a");
b = rs.getString("b");
c = rs.getString("c");
}else{
isLoop = false;
rs.close();
}
} while (isLoop);
}

解决方案 »

  1.   

    不行额  
    现在这个是业务逻辑层,。数据层的sql已经写好了,是另外一个团队写的,不是存储过程
      

  2.   


    String a,b,c;
    String oldA, oldB, oldC;
    if (rs.next()) {
    if (flag) {
    oldA = rs.getString("a");
    oldB = rs.getString("b");
    oldC = rs.getString("c");
    flag = false;
    } else {
    a = rs.getString("a");
    b = rs.getString("b");
    c = rs.getString("c");
    if (oldA.equals(a) && oldB.equals(b)) {
    if ("@@".equals(c)) {
    oldA = a;
    oldB = b;
    oldC = c;
    }
    } else {
    System.out.println(oldA + "\t"+oldB+"\t"+oldC);
    oldA = a;
    oldB = b;
    oldC = c;
    }
    }
    }
    System.out.println(a + "\t"+b+"\t"+c);