sql 中的模糊匹配
fuzzy matching in sql
给定两个 table 客户信息。一个是销售数据,另一个是丰富映射。 table 中都存在客户姓名字段,也是居住国家/地区和居住城市。后两个是干净的数据。
不幸的是,客户端名称很接近,但有时会略有不同。 (例如:维也纳大学 vs 维也纳科技大学)。
我的目标是加入 tables,并使用丰富映射 table 信息丰富销售 table。
因此我想在 mssql 中设置一个模糊匹配,其中我想用于连接的两列不一定是 100% 匹配。
从技术上讲,我知道这个主题可以用模糊连接包在 R 中涵盖,但我真的更愿意将它保留在 mssql 中。
请问有什么办法吗?
有很多方法可以做到这一点。一种可能会让您接近的方法是内置的 SOUNDEX 函数。如果这不起作用,您可以尝试类似的方法:姓氏的前四个字母 + 姓氏的前两个字母。
对此没有简单的答案,一些可用的算法可能需要开发 CLR 函数。这个 question 中有很好的讨论,它是答案。
给定两个 table 客户信息。一个是销售数据,另一个是丰富映射。 table 中都存在客户姓名字段,也是居住国家/地区和居住城市。后两个是干净的数据。
不幸的是,客户端名称很接近,但有时会略有不同。 (例如:维也纳大学 vs 维也纳科技大学)。
我的目标是加入 tables,并使用丰富映射 table 信息丰富销售 table。
因此我想在 mssql 中设置一个模糊匹配,其中我想用于连接的两列不一定是 100% 匹配。 从技术上讲,我知道这个主题可以用模糊连接包在 R 中涵盖,但我真的更愿意将它保留在 mssql 中。
请问有什么办法吗?
有很多方法可以做到这一点。一种可能会让您接近的方法是内置的 SOUNDEX 函数。如果这不起作用,您可以尝试类似的方法:姓氏的前四个字母 + 姓氏的前两个字母。
对此没有简单的答案,一些可用的算法可能需要开发 CLR 函数。这个 question 中有很好的讨论,它是答案。