SQL包含来自表列的数据

SQL包含来自表列的数据,sql,database,ms-access,contains,sql-like,Sql,Database,Ms Access,Contains,Sql Like,我在一个数据库中有两个表。两者都有名为“公司名称”的列。 我想比较一下这些栏目的名称是否有相似之处 例如:Table1.CompanyName=2i有限公司//Table2.CompanyName=2i有限公司。我想你的意思是:如何将这些联系在一起并比较相等性或模糊性 您可以使用允许模糊匹配的Oracle文本执行此操作: select t1.CompanyName from Table1 t1 join Table2 t2 on contains(t1.CompanyNa

我在一个数据库中有两个表。两者都有名为“公司名称”的列。 我想比较一下这些栏目的名称是否有相似之处


例如:
Table1.CompanyName=2i有限公司
//
Table2.CompanyName=2i有限公司。

我想你的意思是:如何将这些联系在一起并比较相等性或模糊性

您可以使用允许模糊匹配的Oracle文本执行此操作:

select  t1.CompanyName
from    Table1 t1
join    Table2 t2
on      contains(t1.CompanyName, t2.CompanyName) > 0

在Access中有很多可能性,但您必须自己编写。签出(要粘贴的代码太多)。

让我们创建两个示例表来准备数据

CREATE TABLE #Table1 (CompanyName VARCHAR(35))
CREATE TABLE #Table2 (CompanyName VARCHAR(35))
GO
INSERT INTO #Table1 (CompanyName)
SELECT '2i Ltd'
UNION ALL
SELECT 'Xyz Ltd'
UNION ALL
SELECT 'Abc Inc'
GO
INSERT INTO #Table2 (CompanyName)
SELECT '2i Limited'
UNION ALL
SELECT 'Xyz Lmtd'
UNION ALL
SELECT 'ZZZ Corp'
和一个部分匹配选择查询(我使用了LEFT4个字符在表1中查找类似的公司名称)

SELECT 
        t1.CompanyName,
        t2.CompanyName

FROM #Table1 t1
JOIN #Table2 t2
ON t1.CompanyName LIKE '%' + LEFT(t2.CompanyName, 4) + '%'

您的问题还不清楚。您对查询结果的期望是什么?您使用的是什么DBMS?MySQL、SQL Server、Postgre等?我有两个不同表中的两列,其中包含名称。例如,表1中的“公司名称”列包含“ABC有限公司”,表2中的“公司名称”列包含“ABC有限公司”。我想要的是一个qu它输出相似但不相等的名称。我尝试过像“[CompanyName]”这样的名称但我没有做到。所以你要求的是模糊匹配。你使用的是哪个数据库平台?你需要准确定义相似的含义。字符的出现、字符串的出现、语义相似性、语音相似性……我不知道标准SQL中定义了什么,你使用的是什么引擎?@user1427266:幸运吗?