我有一個要求循環訪問數據庫表中的記錄和具有相似內容的組項。我想匹配數據庫中的單個列,如果有相似的記錄,我想提取每行的ID並將其保存到另一個表,例如如果我有10個相似的行,它們將鏈接到另一個表中的一個「標題」記錄。在同一個數據庫表中檢測到類似記錄的SQL語句
下面是一些簡單的僞代碼來說明什麼,我需要做的:
For Each record in table
If There is a similar record in header table Then
Link this record to matching header table record
Else
Create new Header record and link this record
End If
End For
我使用MSSQL 2008年的全文檢索,這將提供給我我需要挑選出類似記錄的機制。目前,我打算在C#代碼中創建四個循環,並通過調用存儲過程來檢查匹配記錄,從而進行SQL中的匹配和保存。
東西告訴我這都應該在單個存儲過程來完成(和其他的東西告訴我,保持邏輯的代碼!)。
有沒有在SQL這樣做的更合適的方法?
謝謝你的例子,但是在這個例子中,它只能處理精確的重複。我需要檢查可能不完全相同的類似記錄。 – BradB 2010-10-12 22:20:15
您可以添加having子句另一個條件'或電子郵件LIKE「%相似%」'檢查對於類似的項目.. – Vishal 2010-10-12 22:30:25
我打算使用FTS與LIKE操作不復雜的足夠我的要求。你有沒有用你的例子的風格使用FTS JOIN? DO-能? – BradB 2010-10-12 23:01:25