从事与数据库相关的工作。大多数情况下,当客户以 excel 表格的形式向您发送其数据并在一些 excel 操作后将该数据推送到数据库表时,它就完成了。我也做过很多次。
这种方法面临的一个非常常见的问题是,它有时可能会导致重复行,因为发送的数据主要来自人力资源和财务等部门,人们不太了解数据规范化技术 [:-)]。
我将使用 Employee 表,其中列名是 id、name、department 和 email。
以下是用于生成测试数据的 SQL 脚本。
创建模式TestDB;
CREATE TABLE EMPLOYEE
(
ID INT,
NAME Varchar(100),
DEPARTMENT INT,
EMAIL Varchar(100)
);
INSERT INTO EMPLOYEE VALUES (1,'Anish',101,'anish@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (2,'Lokesh',102,'lokesh@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (3,'Rakesh',103,'rakesh@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (4,'Yogesh',104,'yogesh@howtodoinjava.com');
--这些是重复的行
INSERT INTO EMPLOYEE VALUES (5,'Anish',101,'anish@howtodoinjava.com');
INSERT INTO EMPLOYEE VALUES (6,'Lokesh',102,'lokesh@howtodoinjava.com');
解决方案:
DELETE e1 FROM EMPLOYEE e1, EMPLOYEE e2 WHERE e1.name = e2.name AND e1.id > e2.id;