Sql server 在两个表中查找匹配的列

Sql server 在两个表中查找匹配的列,sql-server,pattern-matching,Sql Server,Pattern Matching,我需要查询两个公司表,第一个表是公司的全名,第二个表也是公司的名称,但不完整。这样做的目的是找到相似的字段。我把我正在使用的参考和SQL代码的图片放进去 我想要的结果是这样的 我发现的最接近的方法是: SELECT DISTINCT RTRIM(a.NombreEmpresaBD_A) as NombreReal, b.EmpresaDB_B as NombreIncompleto FROM EmpresaDB_A a, EmpresaDB_B b WHERE a.N

我需要查询两个公司表,第一个表是公司的全名,第二个表也是公司的名称,但不完整。这样做的目的是找到相似的字段。我把我正在使用的参考和SQL代码的图片放进去

我想要的结果是这样的

我发现的最接近的方法是:

SELECT DISTINCT 
    RTRIM(a.NombreEmpresaBD_A) as NombreReal, 
    b.EmpresaDB_B as NombreIncompleto 
FROM EmpresaDB_A a, EmpresaDB_B b 
WHERE a.NombreEmpresaBD_A LIKE 'VoIP%' AND b.EmpresaDB_B LIKE 'VoIP%'

上述代码的问题在于,它只返回WHERE中指定的记录,如果我将其与“%”类似,它将返回两个表的笛卡尔乘积。RDBMS是Microsoft SQL Server。如果您能帮助我提出任何解决方案,我将不胜感激。

我建议在链接数据的表之间添加一个外键。然后,只需搜索一个表并连接第二个表即可获得其他结果。

在LIKE表达式中使用短名称加上附加的“%”作为参数:

使用我们处理SQL Server的信息进行编辑: 根据您的屏幕截图,您的列名有误
T-SQL中带有
+
运算符的字符串连接。
上面的查询发现了一个例子,其中

'Computex S.A' LIKE 'Computex%'
但是不是

'Voip Service Mexico' LIKE 'VoipService%'
为此,您必须首先去除空白或使用更强大的模式匹配功能。
我已经创建了一个。

查找或删除。

它是Microsoft SQL Server。应用你建议的解决方案的逻辑,没有encambio就没有结果。非常感谢,提出的解决方案是最成功的。最后,使用INSERT INTO将结果发送到另一个表,一切正常。我感谢你的帮助。
'Voip Service Mexico' LIKE 'VoipService%'