2011-01-19 108 views
2

大家好,我的SQL知识不是很好,所以希望有人可以帮助解决这个问题。帮助比较两个列表与sql

我有两个数据列表,我已经导入到SQL Server中。我想比较这两个列表,并找出有多少在这两个等

通常我会做一个简单的连接,但与这两个列表相同的唯一列是一个名称,所以我需要将它与一个像命令因为在一个列表中有很多额外的字符会阻止正常的连接。

任何人都可以帮助给我正确的SQL语法,以使其工作。

感谢

+0

请问您发布了迄今为止所做的工作吗? – rajah9 2011-01-19 17:31:27

回答

6

您可以在JOIN使用LIKE。如果你提供了一些示例数据,它会更清晰,但它听起来像你想要的东西。

SELECT * 
FROM T1 
JOIN T2 ON T1.name LIKE T2.name + '%' 
+1

我可以为OP添加JOIN条件,可以是LIKE,BETWEEN和其他许多事情:它并不总是必须是相等性测试 – gbn 2011-01-19 17:33:50

0

假设你有2和表2列...

 
select count(*) 
from tableA a, tableB b 
where a.column1 = b.column1 
and a.column2 = b.column2
您可以通过更改where子句检查不相等(如 “和a.column1 <> b.column1”)

+0

OP明确指出“=”比较不起作用,因为等效列包含与比较目的不相关的额外字符。 – 2011-01-19 17:36:19

0

没有足够的信息。您需要告诉我们:

  1. 您需要加入(或大约加入)需要多少列来比较列表。

  2. 确切地说,需要操纵哪些列才能被认为是等效的。

一般来说,你有两种方法:

  1. 建立与LIKE比较来比较是不完全一样的列。

  2. 使用UPDATE在带有“额外字符”的列上操作,直到删除所有不相符的字符,然后应用常规的“=”JOIN。