Oracle 合併 merger into
merge into copy_emp1 c
using employees e
on (c.employee_id=e.employee_id)
when matched then
update set
c.first_name=e.first_name,
c.last_name=e.last_name,
c.email=e.email,
c.phone_number=e.phone_number,
c.hire_date=e.hire_date,
c.job_id=e.job_id,
c.salary=e.salary,
c.commission_pct=e.commission_pct,
c.manager_id=e.manager_id,
c.department_id=e.department_id
when not matched then
insert values(e.employee_id,e.first_name,e.last_name,e.email,e.phone_number,
e.hire_date,e.job_id,e.salary,e.commission_pct,e.manager_id,e.department_id)
注意:被on關聯的列(employee_id)不能被更新,否則會報錯ORA-38104:無法
更新on子句中引用的列。
--實驗
JOHN@ ora10g> select * from jobs;
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
---------- ------------ ---------- ----------
ad_pres vp 20000 40000
fi_account accountant 4200 9000
st_clerk stock clerk 2000 5000
it_prog programmer 4000 10000
dba db admin 4200 9000
JOHN@ ora10g> select * from jobs_acquisition;
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
---------- ------------ ---------- ----------
ad_pres vp 10000 40000
dba db admin 4200 9000
JOHN@ ora10g> merge into jobs j
2 using (select * from jobs_acquisition) a
3 on (j.job_id=a.job_id)
4 when matched then
5 update set
6 j.job_title=a.job_title,
7 j.min_salary=a.min_salary,
8 j.max_salary=a.max_salary
9 when not matched then
10 insert (j.job_id, j.job_title, j.min_salary, j.max_salary)
11 values (a.job_id, a.job_title, a.min_salary, a.max_salary);
JOHN@ ora10g> select * from jobs;
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
---------- ------------ ---------- ----------
ad_pres vp 10000 40000
fi_account accountant 4200 9000
st_clerk stock clerk 2000 5000
it_prog programmer 4000 10000
dba db admin 4200 9000
JOHN@ ora10g> select * from jobs_acquisition;
JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY
---------- ------------ ---------- ----------
ad_pres vp 10000 40000
dba db admin 4200 9000
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27633655/viewspace-1080661/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 合併行/多行合併成一行Oracle
- Oracle索引合併coalesce操作Oracle索引
- Hbase-原理-region合併和hfile的合併(大合併、小合併)
- oracle 合併多個sys_refcursorOracle
- PHP 圖片的合併,微信小程式碼合併,文字合併PHP微信小程式
- Oracle 11g 分割槽拆分與合併Oracle
- 影片合併分割軟體如何合併影片
- Unity網格合併_材質合併[轉]Unity
- 石子合併
- 合併果子
- 【SQL】Oracle查詢轉換之檢視合併SQLOracle
- 合併陣列陣列
- RxJava 合併操作RxJava
- mysql 索引合併MySql索引
- 合併查詢
- java 合併pdfJava
- excel合併sheetExcel
- 合併區間
- PHP合併PDFPHP
- git合併分支Git
- 區間合併
- ffmpeg合併影片
- Oracle查詢轉換(一)簡單檢視合併Oracle
- Oracle查詢轉換(二)複雜檢視合併Oracle
- Oracle的表連線方法(一)排序合併連線Oracle排序
- 水煮oracle31----連線查詢&合併查詢Oracle
- git合併分支,如果選擇性的合併檔案?Git
- Butterknife(10.0.0):Manifest merger failed的坑AI
- Oracle查詢轉換(三)外連線檢視合併Oracle
- Git合併時遇到衝突或錯誤後取消合併Git
- ETL中雙流合併和多流合併的區別
- AUTOCAD——合併命令
- js物件合併方法JS物件
- HBase Region合併分析
- Git 分支與合併Git
- windows合併檔案Windows
- 多個excel合併Excel
- 利用opencv合併影象OpenCV