我只需要從數據庫中刪除重複的用戶信息。我的C#代碼如下,但我只是想知道如何在SQL中實現而不使用遊標。我認爲這個訣竅從獲取由電子郵件分隔的整個重複數據集的第一行或其餘行開始。刪除重複數據C#到SQL轉換
在C#中,我收集1000組的電子郵件,並跳過第一個刪除剩餘的行。
List<string> top1000_emails;
do
{
top1000_emails = sql.dbCommand.GetFirstColumn<string>(@"select top 1000 email
from UserBase
group by email
having COUNT(email) > 1");
for (int i = 0; i < top1000_emails.Count; i++)
{
var tmpids = sql.dbCommand.GetFirstColumn<long>("select [Id] from UserBase where email = {0}", top1000_emails[i]).Skip(1);
sql.dbCommand.DeleteByIds<UserBase>(tmpids);
}
} while (top1000_emails.Count > 0);
因此,您的觀點是保留一個截然不同的電子郵件記錄並刪除任何其他重複記錄?它可以在SQL查詢中完成,我不認爲你需要那個C#代碼。 – 2012-07-12 09:42:49
準確地說,我只需要保留不同的電子郵件並刪除其他重複。那麼我怎麼能在沒有光標的sql中執行操作。因爲如果我使用了光標,它將與我的c#代碼相同 – 2012-07-12 09:46:30
表中是否有任何唯一標識? – Kashif 2012-07-12 09:58:02