2014-02-17 39 views
0

我在數據庫中有兩個表。兩者都有名爲「公司名稱」的列。 我想在這些列之間比較其名稱中的任何相似性。SQL包含表列

例如:Table1.CompanyName = 2i Ltd /// Table2.CompanyName = 2i Limited.

+2

找到類似的公司名稱你的問題是不清楚的,你期待什麼作爲你的查詢的結果? –

+0

你使用的是什麼DBMS?MySQL,SQL Server,Postgre等? – gvee

+0

我有兩個包含名稱的不同表中的列。 ce表1中的Column'Company Name'包含'ABC Ltd.',表2中的'Columns'Company''包含'ABC Co. Ltd.'。我想要的是一個查詢,輸出那些相似但不相等的名字。我試過LIKE「* [CompanyName] *」,但我沒有管理。 – user1427266

回答

1

我猜你的意思是:如何攜起手來這些和比較平等或東西模糊。

你不喜歡這樣使用Oracle文本,它允許模糊匹配:

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

在訪問有可能的,但你必須把它寫自己。檢出this article(代碼要粘貼很多)。

+0

@ user1427266:任何運氣? –

0

讓我們創建兩個示例表準備我們的數據

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' 

和部分匹配SELECT查詢(我已經使用LEFT 4個字符表1

SELECT 
     t1.CompanyName, 
     t2.CompanyName 

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