我有一个数据库,有时会存储重复的行,但是重复的数据不是明确的,例如,以下两点的值将是一个重复:SQL获取具有相似列值的行
G12345 & G1234 --> because they are very similar
(a string comparison shows that the characters match 83.3%).
我需要一些帮助编写SQL
查询,将检索非常相似发送作为查询的一部分,例如一个字符串值超过50%的字符匹配。
有人可以帮忙吗?我有一个C#方法如下,但不太清楚如何在SQL中完成此操作:
static double StringCompare(string a, string b)
{
if (a == b) //Same string, no iteration needed.
return 100;
if ((a.Length == 0) || (b.Length == 0)) //One is empty, second is not
{
return 0;
}
var maxLen = a.Length > b.Length ? a.Length : b.Length;
var minLen = a.Length < b.Length ? a.Length : b.Length;
var sameCharAtIndex = 0;
for (var i = 0; i < minLen; i++) //Compare char by char
{
if (a[i] == b[i])
{
sameCharAtIndex++;
}
}
return sameCharAtIndex/maxLen * 100;
}
在此先感谢。
感谢这非常有用我会尝试一下。搜索将仅限于少数记录。 – Tommy