中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SQL中怎么實現根據兩列信息整合兩張表數據

發布時間:2021-11-09 11:38:34 來源:億速云 閱讀:150 作者:iii 欄目:關系型數據庫

本篇內容介紹了“SQL中怎么實現根據兩列信息整合兩張表數據”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

兩張表數據如下:

--2017年

idcollegescore
A001北京大學         670
A002中國人民大學     646
A003清華大學         664
A003清華大學         (定向)
A004北京交通大學     615
A004北京交通大學     (中外合作辦學)
A005北京工業大學     
A005北京工業大學     (中外合作辦學)

--2018年

idcollegescore
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;
--結果如下所示:
id			college					s2017 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	貴州醫科大學					   		普通

“SQL中怎么實現根據兩列信息整合兩張表數據”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

sql
AI

洪江市| 耿马| 仁寿县| 邵武市| 井陉县| 新闻| 四川省| 奉节县| 荃湾区| 古田县| 盐源县| 河东区| 南康市| 云阳县| 德江县| 桃园县| 平乡县| 长泰县| 肥西县| 东海县| 长汀县| 辽阳县| 昆山市| 霍山县| 尉氏县| 出国| 噶尔县| 兴安县| 平原县| 曲周县| 林芝县| 佛冈县| 平阴县| 丰宁| 新丰县| 来安县| 册亨县| 诸暨市| 江津市| 乐亭县| 漳州市|