首页 > 解决方案 > 如何打印结果集中的值而没有列中的任何重复记录

问题描述

我已经创建了代码。请检查评论中的链接。我正在尝试编写代码,为特定列提供唯一记录,但不是为所有列提供唯一记录。还尝试了 [while(rs.next())]。但它会打印具有重复列值的所有记录。我想打印特定两列唯一且重复值包含在其他列中的表。请更喜欢下面提供的图像,然后您将确切了解我在寻找什么。在此处输入图像描述

现在在这里您可以看到左侧表包含从结果集中提取的所有列重复值。但我想要所有记录,但不想要前两列的重复值。

标签: mysqlsqldatabasejspresultset

解决方案


你想用 SQL 还是 Java 来做?在Java中,你可以(我会为一个值做,你可以为其他的):

    String lastUsername;
    while (rs.next()) {
       String username = rs.getString("username");
       if (username.equals(lastUsername)) username = "";
       else lastUsername = username;

       // print username or whatever you need to do with it
    }

您还应该确保您的数据集实际上是按某些东西排序的,至少是您要替换的列:

SELECT DISTINCT username, empid, leavetype,remainingleave,requiredleave,STATUS 
  FROM request 
 ORDER BY username, empid

推荐阅读