以下示例更好地解释了我的问题:
select *
from PEOPLE
WHERE
NAME like @SearchString OR
SURNAME like @SearchString OR
NAME + SURNAME like @SearchString OR
SURNAME + NAME like @SearchString
基本上是:
的确切语法NAME + SURNAME like @SearchString OR
SURNAME + NAME like @SearchString
? (我希望能够同时搜索2个字段)
想象一下@SearchString = 'John Doe'
感谢。
更新: 为了更好地表达自己我的意思是以下查询不返回任何结果,即使JOHN DOE在表中
declare @searchstring varchar(100)
set @searchstring = 'John%Doe'
select *
from PEOPLE
WHERE
NAME + SURNAME like @searchstring
答案 0 :(得分:0)
通过反复试验,我意识到了语法
WHERE NAME + SURNAME like @SearchString
是正确的,工作正常。可能是某些情况下的开销,但它在正常(无大数据)情况下工作正常。
为了分享的乐趣,我在这里写了我在真实应用程序中使用的查询(一个返回用户只有一个编辑框要搜索的人员列表的Web应用程序:所以他可以搜索“John D”,“Doe John” “,”John“,”Doe“,......):
declare @searchstring varchar(100)
set @searchstring = 'John Doe'
SELECT *
FROM PEOPLE
WHERE ( (SURNAME LIKE @SearchString) OR
(NAME LIKE @SearchString) OR
(NAME + ' ' + SURNAME LIKE @SearchString) OR
(SURNAME + ' ' + NAME LIKE @SearchString))