我试图找出做两件事的方法:
- 查找表中的重复记录。
这些通常是“名称”列中的重复名称,但特别是 ParentID 相同的名称。如果我有相同的名字,但 ParentID 不同,那很好,因为这些名字(或孩子)属于不同的父母。
- 修改这些重复项。
最好,我会通过将“ID”附加到名称来修改这些重复项。
我想出了一个查询来定位重复项并将它们转储到临时表中:
CREATE TABLE #Dup(
Name varchar(50),
CustNo varchar(7))
insert into #Dup (Name, CustNo)
SELECT [Name],[CustNo]
FROM [02Kids]
GROUP BY [Name], [CustNo]
HAVING Count(*)>1
这似乎有效。当我查看表中的数据时,我看到了名称,并且看到了 ParentID,这确实是一个为该父 ID 出现两次的名称。值得注意的是,该名称仅在表格中出现一次。它没有显示具有相同名称和 ID 的两行(也许这是我的问题的一部分)。
这是我尝试执行修改时提出的查询:
select[#Dup].[Name] + ' ' + [02Kids].[ID] as iName, [02Kids].ParentID
from #Dup
inner join [02Kids]
on #Dup.CustNo = [02Kids].ParentID
order by iName asc
好吧,这种作品,除了我最终得到大量的重复。例如,我可以确认的一个“名称”只有两个重复项,但该选择查询的总数接近 13 个。
我可能对那个查询很不满意(这是我用来自学的练习内容),但我很难想出一个正确的方法来做到这一点。我还在学习语法、关键字、函数等,所以也许我应该使用一些我还不知道的东西。