关于“怎么⽐较两个SQL查询语句产⽣的结果集是否相同”搜集到
的⼀些资料
⼀、
如果你这两个结果集都没有close,可以这样:
rs.last();
rs2.last();
if (rs.getRow() != Row()) {
//记录数不等,即结果不等
}
rs.first();
rs2.first();
while (rs.next() && ()) {
if (Math.Float(2) - Float(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;sql语句查询结果取反
()){
Map<String, Object> map = new HashMap<String, Object>();
for(i = 0; i < columns.length; i++){
map.put(columns[i], Object(columns[i]));
}
list1.add(map);
}
()){
Map<String, Object> map = new HashMap<String, Object>();
for(i = 0; i < columns.length; i++){
map.put(columns[i], Object(columns[i]));
}
list2.add(map);
}
for(Map<String, Object> map: list1){
ains(map)){
return true;
}
}
return false;
}
三、参考blog.csdn/terryhuang/article/details/8621021  重点摘录如下:
oracle 解决⽅案
1. (select * from a1
2.  minus
3. select * from a2
4. )
5.  union all
6.  (select * from a2
7.  minus
8. select * from a1
9. )
照这展开优化下
(A minus B)union (B minus A)    如果得到的结果是空,证明⼀致。
另外参考⼀下www.itpub/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,就可以判断该结果集是⼀致的。。。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。