你能同时选择LIKE和IN吗?

时间:2009-11-09 09:07:55

标签: sql sql-server-2005 tsql

我需要写一些我想称之为Valley Girl查询的内容。我需要SELECT LIKE IN的东西 - 这样的东西:

  

SELECT * FROM Table1 WHERE Name LIKE   IN(SELECT Name FROM Table2)

原因是我有一张满是公司名称的表,但它们并不完全相同 - f.ex.在表1中,它可能会说“克莱斯勒集团”,而在表2中它可能只是说“克莱斯勒”。

有没有简单的方法可以做到这一点?

4 个答案:

答案 0 :(得分:2)

select
  *
from
  Table1 t1
    inner join Table2 t2 on (t1.name like t2.name + '%')
如果您愿意,可以

或没有'%'标志:)

答案 1 :(得分:1)

这是你可以做到的一种方式:

SELECT t1.*
FROM Table1 t1
    JOIN Table2 t2 ON t1.Name LIKE t2.Name + '%'

答案 2 :(得分:0)

我想:

SELECT * FROM table1 WHERE EXISTS (SELECT Name FROM Table2 WHERE Table1.Name LIKE Name)

答案 3 :(得分:0)

如果您尝试创建一个紧密匹配列表,那么当可能有可疑的拼写时,SOUNDEX功能会很有用。

SELECT T1.* 
  FROM Table1 T1    
  JOIN Table2 T2 ON SOUNDEX(T1.Name) = SOUNDEX(T2.Name)