0

特定の条件に基づいて 2 つの結果セットを出力しています。最初の結果セットには、日付が 1 日を超えるデータが含まれています。2 番目の結果セットには、日付が 2 日を超えるテーブルが出力されます。テーブルが含まれています。最初のテーブルから行を重複させずに 2 番目のテーブルを印刷するにはどうすればよいですか (日付はテーブルの列の 1 つです)。

両方のテーブルは、同じクエリによって生成されます。Java を使用してこれを作成する必要があり、クエリを変更できません。Javaコードを使用して重複のデータをフィルタリングするにはどうすればよいですか??

4

1 に答える 1

0

重複キーを避けるために HashMap を使用できます。

    ResultSet rs1 = ... // here goes your first result set
    ResultSet rs2 = ... // here goes your second result set

    // TableRow is a class you can create which contains the fields of your result set
    // including the primary key
    HashMap<String, TableRow> hm = new HashMap<String, TableRow>();

    // First you insert the rows from Result Set 1
    while (rs1.next()) {
        // Obtain primary key
        String pk = rs1.getString("pkey");
        // Obtain fields
        String field1 = rs1.getString("field1");
        String field2 = rs1.getString("field2");
        // ...up to fieldN
        TableRow tr = new TableRow(pk, field1, field2, ...);
        hm.put(pk, TableRow);
    }

    // Then you insert the rows from Result Set 2
    while (rs2.next()) {
        // Obtain primary key
        String pk = rs2.getString("pkey");
        // Obtain fields
        String field1 = rs2.getString("field1");
        String field2 = rs2.getString("field2");
        // ...up to fieldN
        TableRow tr = new TableRow(pk, field1, field2, ...);
        hm.put(pk, TableRow);
    }

HashMap は重複キーを回避します。日付が行ごとに一意である場合は、日付を HashMap のキーとして使用することもできます。

于 2013-10-22T10:51:36.600 に答える