sql - SQL Server 中是否有相当于 python 的 SequenceMatcher 来连接相似的列?

标签 sql sql-server sequencematcher

在 python 中,有一个很好的内置函数,可以让我检查两个字符串序列之间的差异。下面的例子:

from difflib import SequenceMatcher

def similar(a, b):
    return SequenceMatcher(None, a, b).ratio()

示例:

similar("Apple","Appel")
0.8
similar("Apple","Mango")
0.0

SQL中有等价的函数吗?

我需要做的是将两个表连接在一列上。在表 A 上,此列是他们的实际帐号,在另一个表上,该列是用户添加其帐号,这不是必填字段,因此我注意到他们的实际帐号略有不同。

表A

account_num   Name
5WWW55        John
DDDDD7        Jacob
SSSSX7        jingleheimer

表B

account_num   Name
5WWW55        John
3SSSX7        jingleheimer     -- First character is different 


Select Table_A.account_num, 
       Table_b.Name 
FROM Table_A
JOIN TABLE_B 
          on Table_A.account_num = Table_B.account_num

预期输出:

account_num   Name
5WWW55        John
SSSSX7        jingleheimer

最佳答案

您可以使用DIFFERENCE :

SELECT Table_A.account_num, 
       Table_b.Name 
FROM Table_A
JOIN TABLE_B 
  ON DIFFERENCE(Table_A.account_num , Table_B.account_num) = 4;

<强> db<>fiddle

关于sql - SQL Server 中是否有相当于 python 的 SequenceMatcher 来连接相似的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53785891/

相关文章:

sql - 如何在 sql server 中将 identity_insert 设置为 on

sql - sql server 中的 'order by' 错误

java - 将 Pushy 与 ALPN 和 MSSQL Jdbc 驱动程序一起使用会引发 java.lang.IllegalAccessError

sql-server - 通过 SQL Server 发送电子邮件失败

sql - ColdFusion:如何在一次插入中插入带有静态外键的列表?

mysql - 检索每个组中的最后一条记录 - MySQL

sql-server - SQL Server 2008将地理点保存为十六进制

python - 比较csv的两列并在另一个csv中输出字符串相似度

python - Python 3.6 SequenceMatcher().get_matching_blocks() 如何工作?