两张表数据如下:

--2017年

id

college

score

A001

北京大学

670

A002

中国人民大学

646

A003

清华大学

664

A003

清华大学         (定向)

A004

北京交通大学

615

A004

北京交通大学     (中外合作办学)

A005

北京工业大学

A005

北京工业大学     (中外合作办学)

--2018年

id

college

score

A001

北京大学

680

A002

中国人民大学

662

A003

清华大学

671

A003

清华大学         (院校特定要求)

A004

北京交通大学

634

A004

北京交通大学     (中外合作办学)

A005

北京工业大学

A005

北京工业大学     (中外合作办学)

A006

北京航空航天大学

640

A007

北京理工大学

636

A007

北京理工大学     (中外合作办学)

A008

北京科技大学

632

Y007

北京理工大学

621

需求,新表四列, id  college,s2017,s2018  两张表整合在一起,根据id、college

相关语句如下:

--创建2017/2018表

create table score2017 (id varchar2(10),college varchar2(60),s2017 int);

create table score2018 (id varchar2(10),college varchar2(60),s2018 int);

--创建集合表

create table score1718 (id varchar2(10),college varchar2(60),s2017 int,s2018 int);

--删除2017年表中重复学校和id

delete from score2017 where replace(college,' ','')='广西大学(专业志愿)';  --5行

delete from score2017 where replace(college,' ','')='河北师范大学(专业志愿)';  --2行

--插入两张表相同数据  1138行

insert into score1718 select a.id,replace(a.college,' ',''),a.s2017,b.s2018 from score2017 a,score2018 b where replace(a.college,' ','')=replace(b.college,' ','') and a.id=b.id

select count(college) from score1718;  --1138 行重复数据

--插入2017年表中不相同数据  80行

insert into score1718 value(id,college,s2017) select a.id,replace(a.college,' ',''),a.s2017 from score2017 a where replace(a.college,' ','') not in (select replace(a.college,' ','') from score2017 a,score2018 b where replace(a.college,' ','')=replace(b.college,' ',''))

--插入2018年表中不相同数据  134行

insert into score1718 value(id,college,s2018) select b.id,replace(b.college,' ',''),b.s2018 from score2018 b where replace(b.college,' ','') not in (select replace(a.college,' ','') from score2017 a,score2018 b where replace(a.college,' ','')=replace(b.college,' ',''))

--插入2018年表中相同学校不相同id数据   8行

insert into score1718 value(id,college,s2018) select id,college,s2018 from score2018 b where b.college in (select college from score2018 group by college having count(*) > 1) and b.id not in(select a.id from score2017 a,score2018 b where replace(a.college,' ','')=replace(b.college,' ','') and a.id=b.id)

--对比数据

select count(college) from score2017;  --1218行

select count(college) from score2018;  --1280=1138+134+8

--集合表中总数据为1360行

select count(college) from score1718;   --1360=1138+80+134+8行

--添加类型列,提取字段

alter table score1718 add (CollegeType varchar2(40));

update score1718 set CollegeType='普通' where college not like '%(%)%';  --982行

update score1718 set CollegeType=substr(college,instr(college,'(')+1,instr(college,')')-instr(college,'(')-1) where  college like '%(%)%';  --378行

select id,college,CollegeType from score1718;

--结果如下所示:

idcolleges2017 s2018  CollegeType

A650四川外国语大学582   608普通

A651西南财经大学619   638普通

A652西南政法大学612   627普通

A652西南政法大学(中外合作办学)599   624中外合作办学

A653成都体育学院540   普通

A655四川美术学院549   570普通

A656西南民族大学556   582普通

A657贵州大学586   601普通

A660贵州医科大学   普通

oracle 两表两列数据对比_【SQL】根据两列信息,整合两张表数据相关推荐

  1. 【SQL开发实战技巧】系列(八):聊聊如何插入数据时比约束更灵活的限制数据插入以及怎么一个insert语句同时插入多张表

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  2. oracle避免回表,请教大家: 经常在sql调优过程中提到避免“回表”,具体是指什么意思???3Q...

    你的位置: 问答吧 -> Oracle -> 问题详情 请教大家: 经常在sql调优过程中提到避免"回表",具体是指什么意思???3Q 如题,不甚感激!!!! [ 本帖 ...

  3. sql server从一个数据库复制一张表到另外一个数据库

    sql server从一个数据库复制一张表到另外一个数据库 /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver   'ITSV ', ' ', ...

  4. oracle 两表两列数据对比_当表中的列数不同时,如何比较oracle中的两个表

    INTRO:下面我将展示如何做到"手工"这些工具(例如SQL Developer)可以做得更快更好.我对此(和你的!)的兴趣是双重的:学习和使用一些可以帮助解决许多其他问题的想法; ...

  5. excel两个表格数据对比_教你如何使用excel快速对比多项数据

    Hello,今天要介绍给大家的小技巧是如何利用excel或xlsx快速对比多项数据. 下面我以一.二月份的销售数据为例,进行快速比对两个月的数据差. 首先,我们在任意单元格中输入一个"-1& ...

  6. excel两个表格数据对比_快速对比excel表格两个sheet中不同的数据,极大的降低重复工作量...

    两个Excel表格应该比较,公式不会被设置,而vba是一本天书.有简单的方法吗? 有!有!有!!! Excel有一个不是所有人都常用的功能:合并计算.使用它,我们可以快速比较两个表之间的差异. 示例: ...

  7. excel两个表格数据对比_两个Excel表格合并,最有水平的处理方法

    有2个Excel表格,列标题内容和顺序不完全一样.现需要把这2个表格合并到一个总表中.(按标题一 一对应) 如果一列一列的粘,会非常的麻烦,如果有几十个表格合并,你会不会崩溃掉? 其实,有一个函数可以 ...

  8. mysql向表中填入数据_教你快速掌握如何向MySQL的表中录入数据

    当我们建好数据库及表后,首先想到的就是向数据库的表中输入数据.下面我们就来探讨一下如何向数据库增加数据: 1.常用的方法是insert语句 以下为引用的内容: insert into tablenam ...

  9. jq 比较两个时间是否在同一天_.NET CORE下最快比较两个文件内容是否相同的方法...

    最近项目有个需求,需要比较两个任意大小文件的内容是否相同,要求如下: 项目是.NET CORE,所以使用C#进行编写比较方法 文件大小任意,所以不能将文件内容全部读入到内存中进行比较(更专业点说,需要 ...

最新文章

  1. 【仿汽车之家】价格区间选择控件
  2. Discuz代码分析——index.php
  3. redhat下网络的配置
  4. C# main函数的返回值 - 译
  5. 【Linux】Face Recognition的封装
  6. NETINT刘迅思:底层软件开发向上层应用靠拢
  7. SAP Spartacus b2b 页面 banner 的grid layout设计
  8. python graphviz中文乱码_graphviz画图与中文乱码等问题总结
  9. 计算机的任务管理器作用,电脑技术:如何妙用任务管理器
  10. 探测能源、跨洲安全通信……你所想不到的量子技术!
  11. c++ 等待子线程结束_python主线程与子线程的结束顺序
  12. Matlab中的逻辑运算:“any”,“all”
  13. “adb server is out of date.
  14. reviewboard mysql_reviewboard安装实战
  15. 从中序与后序遍历序列构造二叉树
  16. [赛后总结]G2022 Regular Contest 04总结
  17. 观察 :人工智能与伦理道德
  18. C++ Builder开发AutoCAD应用程序的方法
  19. BI神器Power Query(15)-- PQ制作时间维度表(4)
  20. 基金A类和C类的科普贴

热门文章

  1. 文献阅读005【精读】
  2. BZOJ1901 Zju2112 Dynamic Rankings 【树状数组套主席树】
  3. 解决phpcms模版设置中不能显示栏目首页模板,栏目列表页模板,内容页模板等下拉菜单选项的问题!...
  4. 2013年上半年项目总结
  5. 一个flash前后台开源框架的的站点
  6. oracle querytimeout,聊聊pg jdbc的queryTimeout及next方法
  7. java导出csv文件_java导出生成csv文件的方法
  8. 二叉搜索树的2层结点统计_植树节,程序猿种的那些树
  9. matlab单位冲击序列代码,matlab产生单位冲击序列 matlab单位冲激函数代码
  10. python函数多次调用内存溢出_关于循环多次(具体160次左右)获取同一个句柄对象,不同实例,内存溢出的问题。...