将表的每一行与SQL Server 2008中的另一个表进行比较

时间:2014-03-07 19:45:28

标签: sql sql-server-2008

这就是我所拥有的。

我有两个表,我需要找到table 1中确实存在的table 2中的值。

Table 1
----------    
John-1
John-2
John-3
John-4
Nancy-1
Nancy-2
Nancy-33
Nancy-4

Table 2
--------
Nancy-33

我需要找出Nancy-33中是否存在Table2,然后跳过nancy的所有其他值,并仅显示JOHN的所有值

由于 乔治

1 个答案:

答案 0 :(得分:0)

如果您只想匹配名称部分,然后覆盖完全匹配的位置,您可以使用一些难看的字符串拆分来执行此操作:

-- t-sql
SELECT a.name
FROM table1 a
INNER JOIN (
  SELECT t1.name
  FROM table1 t1
  JOIN table2 t2 ON t1.name = t2.name
) b ON a.name = b.name
  OR SUBSTRING(a.name, 1, CHARINDEX('-', a.name)) <> SUBSTRING(b.name, 1, CHARINDEX('-',     b.name))