Sql server 其中,使用两列查询中的条件

Sql server 其中,使用两列查询中的条件,sql-server,sql-server-2008-r2,where-clause,Sql Server,Sql Server 2008 R2,Where Clause,下面的例子可以更好地解释我的问题: 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

下面的例子可以更好地解释我的问题:

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
??(我希望能够同时在两个字段中搜索)

想象一下这样的情况,
@SearchString='johndoe'

谢谢

更新: 为了更好地表达自己,我的意思是,下面的查询不返回任何结果,即使johndoe在表中

declare @searchstring varchar(100)
set @searchstring = 'John%Doe'

select * 
from PEOPLE
WHERE
  NAME + SURNAME like @searchstring

通过反复试验,我了解了语法

WHERE NAME + SURNAME like @SearchString
这是正确的,工作正常。在某些情况下,这可能是一种开销,但在正常(无大数据)情况下,它可以正常工作

为了分享我的乐趣,我在这里写下了我在真实应用程序中使用的查询(一个web应用程序,它返回一个用户只有一个editbox要搜索的人员列表:这样他就可以搜索“John D”、“Doe John”、“John”、“Doe”、…):


不确定您的问题到底是什么,您想避免太多代码行吗?不,我不知道如何让用户键入“John Doe”,我使用此字符串在两个字段(姓名和姓氏)中搜索。在本例中,NAME+“”+姓氏='johndoe'。但我不知道在where条件下该怎么说。我在上面写的语法是可以的,但工作区不会导致问题吗?NAME+''+类似@SearchString的姓氏效果更好?类似@SearchString的NAME+'%'+姓氏如何?请查看上面的更新
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))