如何连接行值以在T-SQL查询的WHERE子句中使用

Ada*_*dam 5 sql t-sql sql-server concatenation

我想在T-SQL中编写一个查询来对两个连接列执行搜索.这两列是fname和lname.这是我到目前为止:

SELECT
    fname,
    lname,
    ...
FROM
    users
JOIN
    othertable ON foo=bar
WHERE
    fname+' '+lname LIKE '%query%'
Run Code Online (Sandbox Code Playgroud)

但是,SQL服务器不喜欢这种语法.我如何构造查询,以便我可以执行搜索两个连接列的WHERE LIKE操作,允许我搜索用户的全名,而不是单独搜索名字和姓氏?

gbn*_*gbn 5

我只能建议fname或lname中的一个为NULL,因此LIKE失败.(NULL concat any为null)

尝试

...
ISNULL(fname, '') + ' ' + ISNULL(lname, '') LIKE '%query%'
Run Code Online (Sandbox Code Playgroud)

但是,我会使用一个计算列并考虑索引它,因为这将运行得非常糟糕.