【发布时间】:2013-05-08 15:50:01
【问题描述】:
我有一个名为 customers 的表,它从表单中获取信息,并非所有字段都是必需的(这是因为表单会使用输入的信息生成 asf / xml),然后我希望能够将重复项合并到一行中删除重复项。
这是我的桌子
CID | LastName | FirstName | Street | City | ZipCode | HomePhone | CellPhone | EmailAddr
1 Test NULL NULL NULL NULL NULL NULL NULL
2 NULL TEST NULL NULL NULL NULL NULL NULL
3 NULL NULL Test NULL NULL NULL NULL NULL
4 NULL NULL NULL Test NULL NULL NULL NULL
5 NULL NULL NULL NULL Test NULL NULL NULL
6 NULL NULL NULL NULL NULL Test NULL NULL
7 NULL NULL NULL NULL NULL NULL TEST NULL
8 NULL NULL NULL NULL NULL NULL NULL TEST
我想将每个非空字段的数据合并到 Fist 实例中,然后更新该记录并删除剩余的 7 条记录。
我仍然从 SQL 开始,但了解连接、插入、更新删除等。任何建议或指导将不胜感激。我发现了多个帖子,我可以将这些数据合并到一个报告中,但没有很多帖子可以真正合并数据并删除重复的行。
我刚刚在搜索时发现了这篇文章,所以它可能就是我要找的 mysql-consolidate-duplicate-data-records-via-update-delete
【问题讨论】:
-
那么如果你将这 8 条记录合并到一条 CID = 9 的新记录中,你是否还想去更新所有相关表以将 1-8 替换为 9?
-
它看起来像一个糟糕的结构。您将如何确定要“合并”哪些行?我的意思是你可以“合并”不同人的姓和名。
-
另一件事是你怎么知道名字与姓氏相关,街道甚至与城市相关 - 这里没有任何关系,你最终会混淆数据。
标签: sql sql-server tsql