如果确定唯一性的唯一的事情是列电子邮件(这是由你的榜样建议),那么试试这个:
Update t set active= 0
From Table t
Where id !=
(Select Min(id) From table
Where email = t.email)
如果其他列也应被用来确定唯一性,然后inmclude那些在子查询的WHERE子句:
Update t set active= 0
From Table t
Where id !=
(Select Min(id) From table
Where email = t.email
And addr = t.addr
And [Other columns])
要在您的评论处理的问题,如果有空白的领域,要收集多行数据,你有一个更复杂的问题。首先,可能有不止一行的值,而对于某些行可能不同于其他行。第二,如果你想将它们包括在测试的唯一性(有重复)的人口只有当它们,那么什么DIO做什么时,某些行有三列相同和不同的行集有一组不同的同列相同的值?
id addr city state zip phone
1 X Denver CO 71113 Blank
2 Y Blank CO Blank 212.901-3456
3 X Denver TX Blank Blank
4 Y ElPaso TX Blank 212.901-3456
5 X ElPaso Blank 71113 Blank
6 Y ElPaso Blank Blank 212.901-3456
那么您如何确定哪些行重复?这太复杂了,无法处理。如果你能在一组固定的列的解决被用来确定uniquenses/dupllicates,那么还有一个办法从其他多个行的一个聚集了其他列的数据值,你是在一个你离开停用active有一个空白值,但是如果用于确定唯一性/重复项的列可能不同(取决于实际的数据值),那么这些技术将不起作用。
[你有什么尝试?](http://mattgemmell.com/2008/12/08/what-have-you-tried/)请参阅[关于堆栈溢出](http://stackoverflow.com/about )。 – 2013-04-25 19:56:47
我有重复的名单,但我不能找到的东西,可以比较两行,要么选择一个正确的停用,或复制过来的数据。 – rncrtr 2013-04-25 19:58:21