我需要在第一个表中查询两个公司表是公司的全名,第二个表也是名称但不完整。想法是找到相似的字段。我把我正在使用的参考和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中指定的记录,如果我把这个LIKE'%'它返回两个表的笛卡尔积。 RDBMS是Microsoft SQL Server。如果您帮助我提出任何建议的解决方案,我将不胜感激。
答案 0 :(得分:0)
我建议在链接数据的表之间添加一个外键。然后你可以只搜索一个表并加入第二个表来获得其他结果。
答案 1 :(得分:0)
在LIKE表达式中使用短名称加上'%'作为参数:
SELECT a.NombreEmpresaBD_A as NombreReal
,b.NombreEmpresaBD_B as NombreIncompleto
FROM EmpresaDB_A a, EmpresaDB_B b
WHERE a.NombreEmpresaBD_A LIKE (b.NombreEmpresaBD_B + '%');
根据您的屏幕截图,您的列名称错误!
带有+
运算符的T-SQL中的字符串连接
上面的查询找到了
'Computex S.A' LIKE 'Computex%'
但不:
'Voip Service Mexico' LIKE 'VoipService%'
为此,您必须先剥离空白或使用更强大的模式匹配功能 我创建了一个demo for you on data.SE 查看pattern matching或LIKE operator in the manual。