sql - 如何在表中查找重复名称

标签 sql string duplicates oracle-sqldeveloper

我有一张表,上面有人名地址和职位。
名字有时会重复。我必须比较两个人是否有相同的名字和相同的地址,而不是我只需要保留他们的 1 条记录。

Table: Data_Excel
Name: P_Name
Address: P_Address
City:  P_city

最佳答案

要查找重复项,您可以执行以下操作:

SELECT P_name,
  P_Address,
  P_city
FROM Data_Excel
GROUP BY P_Name,
  P_Address,
  P_city
HAVING COUNT(*) > 1;

要删除重复项,您可以执行以下操作:
DELETE
FROM Data_Excel
WHERE rowid NOT IN (
    SELECT MIN(rowid)
    FROM Data_Excel
    GROUP BY P_Name,
      P_Address,
      P_city
    );

要在 Person 表中插入,您可以执行以下操作:
INSERT INTO Person(id,name)
SELECT (SELECT MAX(id)+1 FROM Person),P_Name 
FROM Data_Excel WHERE P_Name NOT IN (SELECT name FROM Person)

关于sql - 如何在表中查找重复名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094055/

相关文章:

sql - SSIS 中的 OnTaskFailed 事件处理程序

sql - NHibernate 的优缺点

.net - 规则引擎 - 如何存储规则以避免在编辑时解析?

java - 如何在 Java 中追加字符?

c - 为什么 strchr 需要一个 int 来查找 char?

java - 从字符串中删除重复字符的方法(Java)

sql - 了解 SQL Server 中数据库所有表之间的关系

javascript - 使用 JS/jQuery 修改 HTML 中日期/时间文本字符串的值

wordpress - add_menu_page中的标签重复

java - 查找数组中的重复项并仅打印一次