sql - 列与列之间的模糊匹配

标签 sql match fuzzy

我正在尝试找到一种方法,将表 1 中的一列干净数据与表 2 中的一列脏数据相匹配,而不对脏数据进行任何更改。我正在考虑模糊匹配,但干净表中的条目太多,无法使用 CDE。因此,例如:

Table 1
GroupID    CompanyName
123        CompanyA
445        CompanyB
556        CompanyC

Table 2
GroupID    Patientname
AE123789   PatientA
123987     PatientB
445111     PatientC

我正在尝试使用团体号码将保险公司与患者进行匹配。有没有匹配的方法? (幸运的是,组编号实际上要长得多,并且在寻找单个组的患者值(value)时,模糊匹配效果非常好,因此它们似乎足够独特,可以应用于此处)。

使用 SQL Server 2008。

最佳答案

这会根据您使用的数据库而略有变化,但看起来您正在寻找类似这样的东西:

MSSQL

select *
from table1 t1
  join table2 t2 on t2.groupid like '%'+cast(t1.groupid as varchar(max))+'%' 

MySQL - 使用Concat():

select *
from table1 t1
  join table2 t2 on t2.groupid like concat('%',t1.groupid,'%') 

关于sql - 列与列之间的模糊匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23617292/

相关文章:

objective-c - 具有cocoapods obj-c依赖性的swift项目

删除在 R 中开始和结束处包含句点的行

mysql - 带有附加位置的全文搜索

json - 条件 Karate API 测试工具中的模糊匹配

MySQL:选择与多个ID匹配的所有记录

php - 从 MySQL 表中获取数据并插入到另一个表中

sql - 如何存储 15 x 1 亿条 32 字节记录以进行顺序访问?

sql - 在 PostgreSQL 的另一个表中选择每行时间戳后的第一个事件

algorithm - 日期类型值的模糊匹配

python - 如何在 x 和两个函数之间填充(交集)?