【SQL】根據兩列資訊,整合兩張表資料
兩張表資料如下:
--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; --結果如下所示: 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 貴州醫科大學 普通
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29487349/viewspace-2646298/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- django(django學習) 兩張表建立 插入資料Django
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫
- 從兩張表中取資料的 SQL 能改寫成 Laravel Eloquent 的形式嗎?SQLLaravel
- pandas 兩列資料合併
- MSSQL遍歷資料庫根據列值查詢資料SQL資料庫
- 根據查詢條件批量修改表資料
- PHP根據資料表自動生成CURD操作PHP
- Elasticsearch 根據陣列長度過濾資料(qbit)Elasticsearch陣列
- Excel將一列資料變為兩列Excel
- Linux中 awk命令根據列的索引批次提取列的資料Linux索引
- SQL server根據表名查詢表主鍵SQLServer
- MySQL關於根據日期查詢資料的sql語句MySql
- MyBatis 根據資料表反向生成 java 實體類等MyBatisJava
- Excel查詢兩列資料相同的元素Excel
- 資料整合的兩種架構:ELT和ETL架構
- excel兩列亂序姓名如何一一對應 excel 兩列資料自動配對Excel
- Laravel 中兩張資料表 left join 怎麼讓相同欄位不被覆蓋?Laravel
- [資料結構] 根據前中後序遍歷中的兩種構造二叉樹資料結構二叉樹
- Classy:根據資料庫表在執行時建立類/模型資料庫模型
- DcatAdmin 根據選單資料自動填充許可權資訊 (Artisan命令)
- 資料結構線性表兩種方式分享資料結構
- Delphi 根據資料庫表生成Record型別,並封裝CRUD資料庫型別封裝
- 根據兩個日期之間獲取LocalDate日曆列表LDA
- 資料庫 根據出生日期計算年齡的sql幾種資料庫寫法資料庫SQL
- Linux根據程式號,檢視相關資訊Linux
- 兩表關聯查詢:sql、mybatisSQLMyBatis
- SQL 兩個表組合查詢SQL
- sqlserver根據條件去除重複資料SQLServer
- 資料庫的基本資訊,都在這幾張表裡了資料庫
- excel表1和表2資料匹配 vlookup跨表兩個表格匹配Excel
- 建立SQL資料表SQL
- 兩表聯查修改的sql語句SQL
- EF3.1 根據資料庫生成程式碼資料庫
- 如何比較兩個資料庫表結構的不同資料庫
- SQL Server資料庫檢視一個資料表各列的註釋SQLServer資料庫
- 根據年月份分表
- 火山引擎張雷:圖資料庫選型主要看兩點—資料是否高度互聯及資料操作型別資料庫型別
- C#根據反射動態建立ShowDoc介面文字資訊C#反射