Sql server SQL Server:连接列并将该值用于IN语句
我有一个连接Sql server SQL Server:连接列并将该值用于IN语句,sql-server,Sql Server,我有一个连接FirstName和LastName的查询。在连接之后,我希望能够针对该值运行in语句。也许已经过了我的就寝时间,但我想不出写这封信的正确方法 示例查询 SELECT FirstName + ' ' + LastName AS fullName FROM [my].[dbo].[dbOfNames] WHERE fullName IN ('John Smith', 'Mike Apple', 'Bob Burger') 我不确定我在这里错过了什么。是否
FirstName
和LastName
的查询。在连接之后,我希望能够针对该值运行in语句。也许已经过了我的就寝时间,但我想不出写这封信的正确方法
示例查询
SELECT
FirstName + ' ' + LastName AS fullName
FROM
[my].[dbo].[dbOfNames]
WHERE
fullName IN ('John Smith', 'Mike Apple', 'Bob Burger')
我不确定我在这里错过了什么。是否有一种方法可以完成连接,然后对照in语句检查该值,或者我的做法是错误的?我认为您需要
SELECT FirstName + ' ' + LastName as fullName
FROM [my].[dbo].[dbOfNames] where FirstName + ' ' + LastName
in ('John Smith', 'Mike Apple', 'Bob Burger')
您可以首先使用来投影连接的全名,这样就可以对派生列进行进一步的操作和筛选,而无需重复连接操作:
WITH cteFullName as
(
SELECT FirstName + ' ' + LastName as fullName
FROM [my].[dbo].[dbOfNames]
)
SELECT fullName
FROM cteFullName
WHERE fullName IN ('John Smith', 'Mike Apple', 'Bob Burger');
另一种替代方法(与IMO不同)是使用派生表:
SELECT fullName
FROM
(
SELECT FirstName + ' ' + LastName as fullName
FROM [my].[dbo].[dbOfNames]
) AS derivedFullName
WHERE fullName IN ('John Smith', 'Mike Apple', 'Bob Burger');
引用你的字符串<代码>'John Smith'哈哈,很抱歉,是的,我的查询引用了Strings,你也可以在中使用
左侧的完整表达式。就是这样。非常有帮助!