【发布时间】:2011-04-15 22:49:39
【问题描述】:
我想在 T-SQL 中编写一个查询来对两个连接的列执行搜索。两列是 fname 和 lname。这是我目前所拥有的:
SELECT
fname,
lname,
...
FROM
users
JOIN
othertable ON foo=bar
WHERE
fname+' '+lname LIKE '%query%'
不过,SQL 服务器不喜欢这种语法。如何构造查询,以便我可以执行 WHERE LIKE 操作来搜索两个连接的列,从而允许我搜索用户的全名,而不仅仅是单独的名字和姓氏?
【问题讨论】:
-
你得到什么错误信息?
-
我看不出有什么问题。有什么错误吗?
-
我对我在 sql server 2005 上的联系人表执行了类似的查询,即使其中一列或两列中有 NULL 值,连接也不会导致问题。
-
@Adrift: 那么你有一个 deprecated 设置 CONCAT_NULL_YIELDS_NULL 设置或 DB 的兼容模式设置为 65 参见 MSDN msdn.microsoft.com/en-us/library/ms176056(SQL.90).aspx
-
我得到了它的工作 - 我认为连接条件之一可能导致了问题。当我重写它时,错误消失了
标签: sql sql-server tsql concatenation