Oracle 使用分析函式刪除表中的重複行
在 hr 的 employee 表中插入重複資料,first_name 和 last_name 重複
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(210,'Janette','King','JKING2','650.555.8880',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(211,'Patrick','Sully','PSULLY2','650.555.8881',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(212,'Allan','McEwen','AMCEWEN2','650.555.8882',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
查詢重複資料
SQL> select employee_id, first_name, last_name
2 from hr.employees
3 where first_name in ('Janette', 'Patrick', 'Allan')
4 and last_name in ('King', 'Sully', 'McEwen')
5 order by first_name, last_name;
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
158 Allan McEwen
212 Allan McEwen
210 Janette King
156 Janette King
211 Patrick Sully
157 Patrick Sully
已選擇6行。
刪除重複資料
delete from hr.employees
where rowid in (select rowid
from (select first_name,
last_name,
rowid,
row_number() over(partition by first_name, last_name order by employee_id) staff_row
from hr.employees)
where staff_row > 1);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(210,'Janette','King','JKING2','650.555.8880',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(211,'Patrick','Sully','PSULLY2','650.555.8881',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
insert into hr.employees (employee_id,first_name,last_name,email,phone_number,hire_date,job_id,salary,commission_pct,manager_id,department_id) values
(212,'Allan','McEwen','AMCEWEN2','650.555.8882',to_date('2009-03-25','yyyy-mm-dd'),'SA_REP',3500,0.25,145,80);
查詢重複資料
SQL> select employee_id, first_name, last_name
2 from hr.employees
3 where first_name in ('Janette', 'Patrick', 'Allan')
4 and last_name in ('King', 'Sully', 'McEwen')
5 order by first_name, last_name;
EMPLOYEE_ID FIRST_NAME LAST_NAME
----------- -------------------- -------------------------
158 Allan McEwen
212 Allan McEwen
210 Janette King
156 Janette King
211 Patrick Sully
157 Patrick Sully
已選擇6行。
刪除重複資料
delete from hr.employees
where rowid in (select rowid
from (select first_name,
last_name,
rowid,
row_number() over(partition by first_name, last_name order by employee_id) staff_row
from hr.employees)
where staff_row > 1);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26506993/viewspace-1989906/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle如何刪除表中重複記錄Oracle
- Oracle 刪除表中重複記錄的DELETE SQLOracledeleteSQL
- 高效快速刪除Oracle表中重複記錄Oracle
- oracle刪除多餘重複行Oracle
- oracle 查詢及刪除表中重複資料Oracle
- mysql 刪除表中重複的資料MySql
- 使用Oracle分析函式去除重複記錄Oracle函式
- PostgreSQL刪除表中重複資料SQL
- Oracle中刪除重複資料的SqlOracleSQL
- 刪除oracle重複值Oracle
- 查詢刪除表中重複記錄
- Oracle如何刪除表中重複記錄保留第一條Oracle
- 【原創】使用Oracle分析函式去除重複記錄Oracle函式
- Oracle使用over()partition by刪除重複記錄Oracle
- 刪除Oracle重複記錄Oracle
- oracle刪除重複記錄Oracle
- 刪除表裡重複資料
- mysql 查詢及 刪除表中重複資料MySql
- JavaScript刪除字串中重複的字元JavaScript字串字元
- 如何刪除ArrayList中的重複元素
- mysql表刪除重複記錄方法MySql
- JavaScript刪除字串中重複字元JavaScript字串字元
- sqlserver中刪除重複資料SQLServer
- 三種方法刪除列表中重複的元素及效率分析!
- oracle-快速刪除重複的記錄Oracle
- 刪除排序陣列中的重複項排序陣列
- js刪除陣列中重複的元素JS陣列
- js刪除陣列中的重複元素JS陣列
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI
- Oracle查詢重複資料與刪除重複記錄Oracle
- js利用正規表示式刪除陣列中的重複元素JS陣列
- oracle重複資料的查詢及刪除Oracle
- oracle 刪除重複資料的幾種方法Oracle
- 刪除字串中的所有相鄰重複項字串
- ES6刪除字串中重複的元素字串
- js如何刪除陣列中重複的值JS陣列
- 刪除排序陣列中的重複數字排序陣列
- javascript如何刪除陣列中重複的項JavaScript陣列