Oracle: 怎样用一条SQL话语删除表中字段重复的记录
Oracle: 怎样用一条SQL语句删除表中字段重复的记录
表名 : EMP
字段名称 Emp_no Name Type Salary Bonus
值 A001 严忠斌 正式 2900.00 2400.00
A002 蔺万国 正式 2900.00 2100.00
A001 严忠斌 正式 2900.00 2400.00
A003 蔡利平 试用 2600.00 1900.00
A002 蔺万国 正式 2900.00 2100.00
B001 张和平 试用 1700.00 1600.00
B002 陈延展 正式 1400.00 1450.00
B003 李红梅 正式 1250.00 1050.00
C001 刘梅 试用 1300.00 800.00
C002 李丽 正式 1400.00 700.00
. .
. .
请用一条SQL语句删除EMP 表中 EMP_NO字段重复的记录。
------解决方案--------------------
实测数据:
实测结果:
------解决方案--------------------
以测试过删除了重复记录
delete from emp
where empno in
(select empno from emp group by empno having count(empno) > 1)
表名 : EMP
字段名称 Emp_no Name Type Salary Bonus
值 A001 严忠斌 正式 2900.00 2400.00
A002 蔺万国 正式 2900.00 2100.00
A001 严忠斌 正式 2900.00 2400.00
A003 蔡利平 试用 2600.00 1900.00
A002 蔺万国 正式 2900.00 2100.00
B001 张和平 试用 1700.00 1600.00
B002 陈延展 正式 1400.00 1450.00
B003 李红梅 正式 1250.00 1050.00
C001 刘梅 试用 1300.00 800.00
C002 李丽 正式 1400.00 700.00
. .
. .
请用一条SQL语句删除EMP 表中 EMP_NO字段重复的记录。
------解决方案--------------------
实测数据:
CREATE TABLE emp
(
EmpNo VARCHAR2(20),
NAME VARCHAR2(20),
TYPE VARCHAR2(20),
Salary NUMBER(8, 2),
Bonus NUMBER(8, 2)
);
INSERT INT emp VALUES('A001', '严忠斌', '正式', 2900.00, 2400.00);
INSERT INT emp VALUES('A002', '蔺万国', '正式', 2900.00, 2100.00);
INSERT INT emp VALUES('A001', '严忠斌', '正式', 2900.00, 2400.00);
INSERT INT emp VALUES('A003', '蔡利平', '试用', 2600.00, 1900.00);
INSERT INT emp VALUES('A002', '蔺万国', '正式', 2900.00, 2100.00);
INSERT INT emp VALUES('B001', '张和平', '试用', 1700.00, 1600.00);
INSERT INT emp VALUES('B002', '陈延展', '正式', 1400.00, 1450.00);
INSERT INT emp VALUES('B003', '李红梅', '正式', 1250.00, 1050.00);
INSERT INT emp VALUES('C001', '刘梅', '试用', 1300.00, 800.00);
INSERT INT emp VALUES('C002', '李丽', '正式', 1400.00, 700.00);
实测结果:
------解决方案--------------------
以测试过删除了重复记录
delete from emp
where empno in
(select empno from emp group by empno having count(empno) > 1)