Sql 如果两个字符串有80%的相似性,如何赋予它们相同的ID?

Sql 如果两个字符串有80%的相似性,如何赋予它们相同的ID?,sql,python-2.7,excel,vba,Sql,Python 2.7,Excel,Vba,有两个id描述是相似的,也就是说有80%的相似性。我需要两个人都有相同的身份证 还有其他的id描述有60%的相似性。它们应该保留自己的ID。一旦考虑并修改了id desc,则不应将其作为参考。进一步的 例如: 现在,pepsodent与pepsodent salt匹配。因此,两者的id都应为1 现在,由于pepsodent salt已被修改,它不能进一步用作参考标尺。正如我在上面的评论中所说,您需要准确定义匹配两条记录的规则。在本例中,我为包含整个字符串“pepsodent”的任何记录提供了一个

有两个id描述是相似的,也就是说有80%的相似性。我需要两个人都有相同的身份证

还有其他的id描述有60%的相似性。它们应该保留自己的ID。一旦考虑并修改了id desc,则不应将其作为参考。进一步的 例如:

现在,pepsodent与pepsodent salt匹配。因此,两者的id都应为1
现在,由于pepsodent salt已被修改,它不能进一步用作参考标尺。

正如我在上面的评论中所说,您需要准确定义匹配两条记录的规则。在本例中,我为包含整个字符串“pepsodent”的任何记录提供了一个新ID。这些记录的新ID将为999,但您可以根据需要修改:

SELECT ID, ID_Description, 
CASE
WHEN ID_Description LIKE 'Pepsodent%' THEN 999
ELSE ID
END AS New_ID
FROM Table

如果你能定义80%相似性和/或60%相似性的实际含义,那么我们可以提供帮助。您需要精确地定义哪些规则决定哪些描述应该相互匹配您可以显示您已经尝试过的现有SQL或VBA代码吗?这可能有助于引导人们给出更适合您的答案。您可以尝试实现此算法,看看它是否满足您确定“相似性”的需要。匹配规则是任意两个描述之间的相似性百分比。如果%tage相似性大于80%,则仅应修改id,否则不应修改。我们从左到右开始读取相应的字符。如果描述为100个字符,则仅当80个匹配时才应更改。现在,产品名称可能也在声明之间。不需要。描述应以“pepsodent”开头,如上述示例所示。即使是空格也会被考虑(“uu”或“,”或“!”等),那么字符串“peds”应该与哪个ID匹配呢?所有这四个字符都包含在每个示例中。PessPodent位于表中的第一位。因此,它与表中的其余部分匹配。现在假设“PesPodent salt”已匹配。因此,它的id为1。获得的id不会进一步比较,即它是固定的。然后将PessPodent与表中的其余部分进行比较。Peps应与pepsodent进行比较。要进行匹配,我们假设80%以上应该是相似的。
SELECT ID, ID_Description, 
CASE
WHEN ID_Description LIKE 'Pepsodent%' THEN 999
ELSE ID
END AS New_ID
FROM Table