执行多个select语句

时间:2013-08-23 17:35:46

标签: java sql

我想使用GROUP BY执行多个select语句。

我试过以下一个:

ResultSet rs=s.executeQuery("SELECT attr_name, count(*)"
                          + " FROM Table_name"
                          + " GROUP BY attr_name;"
                          + "SELECT attr_name, count(*)"
                          + " FROM Table_name"
                          + " GROUP BY attr_name");

但它没有来。

2 个答案:

答案 0 :(得分:2)

加入两组结果的方法是使用UNION ALL

ResultSet rs=s.executeQuery(
  "select attr_name,count(*) from Table_name group by attr_name UNION ALL select attr_name,count(*) from Table_name group by attr_name"
);

小心确保列相同:必须具有相同数量的列,并且它们必须属于同一类型。还需要明确命名列以确保:SELECT attr_name, count(*) AS attr_count FROM...

答案 1 :(得分:0)

您正在一个查询中执行2个语句。 ResultSet rs是一个指针,也就是说,它只是指向表行,因此我们可以根据属性名称获取数据。
在这种情况下,它只是不知道在哪里指出。

根据我的说法,一个简单的解决方案是在两个结果集上使用“join”(如果可能),以便rs可以从适当的属性名称中获取。
如果无法连接,使用多个ResultSet会更好,更容易,并使用程序逻辑处理您的字段数据。