Sql server 如何在tsql连接中进行instr

Sql server 如何在tsql连接中进行instr,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我有一张有10亿张唱片的大桌子 我想将小表中的记录与数百个记录进行匹配 在巨大的表格中,有完整的姓名(人名、名、中名、姓) 在tiny table中有3个文件(tiny_table.NAME_PART tiny_table.NAME_PART tiny_table.NAME_PART tiny_table.NAME_PART) 但是firstname/middlename/lastname在tiny_表中混淆了 现在我想对这两个表进行内部连接,并进行模糊匹配。 我没有使用全文搜索/或包含命令

我有一张有10亿张唱片的大桌子 我想将小表中的记录与数百个记录进行匹配 在巨大的表格中,有完整的姓名(人名、名、中名、姓) 在tiny table中有3个文件(tiny_table.NAME_PART tiny_table.NAME_PART tiny_table.NAME_PART tiny_table.NAME_PART) 但是firstname/middlename/lastname在tiny_表中混淆了

现在我想对这两个表进行内部连接,并进行模糊匹配。 我没有使用全文搜索/或包含命令 我们可以使用join(比如oracle中的instr函数)来实现这一点吗


试试这样的。但这不是一个有效的代码

SELECT DISTINCT a.fullname,
       'Matched' [status]
FROM  (select distinct fullname from huge_table) a
       JOIN tiny_table b
         ON a.fullname LIKE '%' + namepart1 + '%'
             AND a.fullname LIKE '%' + case when len(namepart2)=0 then ' ' else namepart2 end + '%'
             AND a.fullname LIKE '%' + namepart3 + '%'
UNION
SELECT *,
       'Not matched' [status]
FROM   huge_table 
SELECT DISTINCT a.fullname,
       'Matched' [status]
FROM  (select distinct fullname from huge_table) a
       JOIN tiny_table b
         ON a.fullname LIKE '%' + namepart1 + '%'
             AND a.fullname LIKE '%' + case when len(namepart2)=0 then ' ' else namepart2 end + '%'
             AND a.fullname LIKE '%' + namepart3 + '%'
UNION
SELECT *,
       'Not matched' [status]
FROM   huge_table