关于“怎么比较两个SQL查询语句产生的结果集是否相同”搜集到的一些资料
一、
如果你这两个结果集都没有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.csdn.net/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,就可以判断该结果集是一致的。。。
关于“怎么比较两个SQL查询语句产生的结果集是否相同”搜集到的一些资料的更多相关文章
- sqlserver 把两个sql查询语句查询出来的两张表合并成一张表
第一个sql语句 select companyname gsmc,zb zhibiao from t_gsndzb left join t_companycode on t_gsndzb.gsbh=t ...
- Java 获取SQL查询语句结果
step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnec ...
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
原文来自:http://blog.csdn.net/Eastmount/article/details/50559008 本文主要讲述了SQL查询语句表之间的行列转换,同时也包括如何将一行数据转换成两 ...
- sql查询语句如何解析成分页查询?
我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...
- SQL查询语句去除重复行
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- SQL查询语句分类
SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...
随机推荐
- 12个QT基本对话框,以及淡入原理(用定时器把窗口逐渐变成透明)
一.基本对话框 1,核心库: 界面程序 QApplication 非程序界面QCoreAppliction 2,消息循环必须执行QApplication.exec(); 3,消息绑定机制: 信号-槽 ...
- Android 禁止进入activity自动弹出键盘
在Manifest.xml中设定activity的属性 android:windowSoftInputMode="stateHidden|stateUnchanged" 附相关属性 ...
- mysql union和union all
UNION 操作符用于合并两个或多个 SELECT 语句的结果集.UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型. union 是对数据进行并集操作,不包括重复 ...
- Javascript获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
/******************** * 取窗口滚动条高度 ******************/function getScrollTop(){ var scrollTop=0; ...
- git使用(一)
github因为众所周知的一些问题,不方便选为远程仓库,在此,我们选用oschina的远程仓库,首先去http://git.oschina.net/申请一个账号. 第一步,安装git(下载电脑系统对应 ...
- 《Java编程那点事儿》读书笔记(五)——System,Integer,Calendar,Random和容器
System 1)arraycopy int[] a = {1.2.3.4}; int[] b = new int[5]; System.arraycopy(a,1,b,3,2); //把数组a中从下 ...
- 字符串 —— String?StringBuffer?StringBuilder?
字符串常用的操作就是拼接,特别是SQL语句的拼接. 做了个简单的试验,它们之间的差别惊人! StringBuffer: public void testStringBuffer() { long st ...
- cookie使用
知识拷贝. 理论很简单,而且模式也和大多请求 http://blog.csdn.net/lanmao100/article/details/2328491(源地址).返回状态的SSO差不多.但是有几个 ...
- 【转】Android 使用ORMLite 操作数据库
Android 使用ORMLite 操作数据库 用过ssh,s2sh的肯定不会陌生 ,应该一学就会 第一步: 下载ormlite-android-4.41.jar和ormlite-core-4.4 ...
- remove duplicates in Postgres(sql去重)
A frequent question in IRC is how to delete rows that are duplicates over a set of columns, keeping ...