SQL Query用于搜索单个列中名字和姓氏的任何变体

时间:2017-01-27 19:32:32

标签: sql sql-server

我有1,700个名字的清单。我需要在数据库的一列中搜索这些名称,并搜索该名称的任何变体和顺序。例如,如果我搜索的名称是John Smith,我需要在列中搜索任何事件,包括“John Smith' Smith John','' ;史密斯,约翰'我在LIKE和IN上尝试了很多不同的变体,在不同的地方尝试了通配符,但是没有得到正确的结果。

假设该列被称为'名称'前3个名字是John Smith,Jane Doe和Joe Johnson,语法是什么?

我最接近的是

SELECT *
FROM Data
WHERE Name LIKE 'John Smith'
OR Name LIKE 'Jane Doe'
OR Name LIKE 'Joe Johnson'

上述问题是,它不会返回任何包含Doe,Jane的结果。

1 个答案:

答案 0 :(得分:3)

我认为这可能会做你想要的:

where (name like '%John%' and name like '%Smith%') or
      (name like '%Jane%' and name like '%Doe%') or
      (name like '%Joe%' and name like '%Johnson%')