我有一个要求循环访问数据库表中的记录和具有相似内容的组项。我想匹配数据库中的单个列,如果有相似的记录,我想提取每行的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