参考自 https://www.cnblogs.com/qingxinblog/p/4237394.html
一、
如果你这两个结果集都没有close,可以这样:
rs.last();
rs2.last();
if (rs.getRow() != rs2.getRow()) {
//记录数不等,即结果不等
}
rs.first();
rs2.first();
while (rs.next() && rs2.next()) {
if (Math.abs(rs.getFloat(2) - rs2.getFloat(2)) > 0.00000001) {
//记录值不等
break;
}
}
二、
来自百度知道的网友回答
//结果集有5列(根据情况调整):empno, ename, sal, hiredate, deptno public static String []columns = {"empno", "ename", "sal", "hiredate", "deptno"}; //结果集rs1和rs2, 判断rs1与rs2中是否有相同元素 public static boolean hasSame(ResultSet rs1, ResultSet rs2) throws SQLException{ List<Map<String, Object>> list1 = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> list2 = new ArrayList<Map<String, Object>>(); int i; while(rs1.next()){ Map<String, Object> map = new HashMap<String, Object>(); for(i = 0; i < columns.length; i++){ map.put(columns[i], rs1.getObject(columns[i])); } list1.add(map); } while(rs2.next()){ Map<String, Object> map = new HashMap<String, Object>(); for(i = 0; i < columns.length; i++){ map.put(columns[i], rs2.getObject(columns[i])); } list2.add(map); } for(Map<String, Object> map: list1){ if(list2.contains(map)){ return true; } } return false; } 三、参考http://blog.youkuaiyun.com/terryhuang/article/details/8621021 重点摘录如下: oracle 解决方案
- (select * from a1
- minus
- select * from a2
- )
- union all
- (select * from a2
- minus
- select * from a1
- )
照这展开优化下
(A minus B)union (B minus A) 如果得到的结果是空,证明一致。
另外参考一下http://www.itpub.net/thread-1066538-1-1.html
四、
select Cause, Rate
from (
select Cause, Rate from A1
union all
select Cause, Rate from A2)
group by Cause, Rate
having count(*) < 2
如果结果集为NULL,就可以判断该结果集是一致的。。。