【问题标题】:Can I return the ID of a row in another table based on how close a match is?我可以根据匹配的接近程度返回另一个表中行的 ID 吗?
【发布时间】:2019-09-20 02:29:15
【问题描述】:

我有一张每天更新产品和供应商信息的表格。这些字段可能会根据它们的来源而有所不同。例如,供应商可以列为“123 Plc”和“123 Timber Plc”。

产品“木材”可以根据这些供应商名称中的任何一个列出,以及“木材2”(同样来自 1 个供应商,但可能略有不同)。

我有一个“干净”数据的参考表(即最终显示的产品和供应商),用于匹配传入的每日信息。

我想将每日更新中的每一行与它与主参考表的相似程度进行匹配

我在 SO 上找到了基于 2 个字符串值产生百分比接近度的代码,这很有帮助,但只有在我明确给它 2 个值时才有效。

我想运行一些代码,通过每日更新的每个条目并检索具有最高百分比匹配的引用表的主键。

Ref Table:

PK | Product | Supplier        | Concat
1  | Timber  | 123 Timber Plc  | Timber123 Timber Plc

------------------------

Daily update example:

Key | Product | Supplier        | Concat               | Ref PK | Match
1   | Timber  | 123 Timber Plc  | Timber123 Timber Plc | 1      | 100
2   | Timber  | 123 Timber      | Timber123 Timber     | 1      | 85
3   | Timber2 | 123Timber       | Timber2123Timber     | 1      | 65

【问题讨论】:

  • 给它两个值,但一遍又一遍地比较百分比并取最高值。您可能需要交叉连接才能完成此操作。
  • 您的要求与我的very first question 非常接近。我还建议您查看全文索引,以了解这对您的方案有何潜在好处。
  • 谢谢,我去看看:)

标签: sql-server


【解决方案1】:

您可以使用全文目录进行模糊查找。

【讨论】:

    猜你喜欢
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 2014-04-07
    • 2010-09-18
    • 2017-03-15
    相关资源
    最近更新 更多