String proposalno=c.getProposalno();
 String sql1="select email from prpcinsured  where proposalno ='"+proposalno+"'";
 logger.debug("根据保单号查询开始!");
 ResultSet rs =db.query(sql1);
 while(rs.next()){
 String email=rs.getString("email");
 if(!"".equals(email)&& email!=null){
   c.setEmailAddress(email);
 }
 }
以上就是我工作中的一段代码,由于SQL语句中的条件proposalno可能会有2个值 ,但根据这2个值查出来的email是同一个的,这样在对象里我就会存有2个同样的email了,我想只存一个,把重复的删掉保留一个,怎么做更改,急求!!!sql

解决方案 »

  1.   

    用Map存起来用email做key 
    最后取这个key
      

  2.   

    不能用map,能用的话就好解决 了。
      

  3.   

    如果email是一样的,那c.setEmailAddress(email);肯定是一样的,怎么可能有两个值呢
      

  4.   

    加上distinct关键字
    String sql1="select distinct email from prpcinsured  where proposalno ='"+proposalno+"'";
      

  5.   

    会有两个值?不明白这是为什么,那你怎么知道,你get出来的这个值是不是你想要的呢?好吧,如果你只是想要一个值,只要取到,就是你要的,那简单来说,你不要while(rs.next()),if(rs.next()) 始终只取第一个,其它不变
      

  6.   

    你这个 c对象是唯一的。你哪怕查询出来200个。最终的 email 也就是你最后 setEmailAddress的值 怎么可能会有几个。
      

  7.   

    你这样永远只会保存一个值的,根本不会保存两个。
    要保险就用5楼的方法:String sql1="select distinct email from prpcinsured  where proposalno ='"+proposalno+"'";
      

  8.   

    语句加distinct好了,另外,楼主 if(!"".equals(email)&& email!=null){
        c.setEmailAddress(email);
      }我觉的这个应该先判断是不是为null再判断是不是.equals(""),要不然可能会空指针异常
      

  9.   

    首先不否认加上 distinct可以解决掉 出现重复问题!不管出于什么原因  分析问题应该从源头解决起  String proposalno=c.getProposalno();
    既然有2个值,你们不应该只顾解决眼前问题而解决问题,根本问题在于 c.getProposalno()  这个获取的值不唯一  我好奇c 是一个动态对象么?  如果它的值不唯一 能把它作为唯一查询条件?
      

  10.   

    看你是什么数据库了,如果是oracle,where条件加上and rownum<2就可以了,再给个建议,楼主的sql语句最好使用预编译,直接拼sql语句不可取(初学者经常这样写)
      

  11.   

    distinct正解,从源头控制输出
      

  12.   

    代码逻辑本身就有问题,
    永远只取sql执行结果的最后一条记录。
      

  13.   


    不需要按照你那么写,LZ写的是不会出现空指针的,
    因为"".equals(null) = false
    equals 只要求左侧,而允许右侧为null的, 是特意这么设计的
      

  14.   

    Quote: 引用 27 楼 baichh20110718 的回复:

    引用 13 楼 coolboyyzy 的回复:语句加distinct好了,另外,楼主
     if(!"".equals(email)&amp;amp;&amp;amp; email!=null){     c.setEmailAddress(email);   }我觉的这个应该先判断是不是为null再判断是不是.equals(""),要不然可能会空指针异常不需要按照……[/quote嗯,确实是这样,null.equals就会报错了,没看清