T-SQL和WHERE LIKE%参数%条款(T-SQL and the WHERE LIKE %P

2019-07-18 01:04发布

我试图写它使用WHERE LIKE“%文本%”条款的声明,但是当我尝试使用参数文本我没有收到效果。 例如,这工作:

SELECT Employee WHERE LastName LIKE '%ning%'

这将返回用户Flenning,曼宁,拧了等,但这种说法不会:

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'

未找到结果。 有什么建议? 提前致谢。

Answer 1:

它应该是:

...
WHERE LastName LIKE '%' + @LastName + '%';

代替:

...
WHERE LastName LIKE '%@LastName%'


Answer 2:

正确的答案是,是的,因为'%' -符号是搜索表达式的一部分,它应该是你的价值的一部分,所以等。无论您SET @LastName (无论是从一种编程语言或T-SQL),你应该把它到'%' + [userinput] + '%'

或者,在你的例子:

DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'


Answer 3:

您可以尝试这一个,使用CONCAT

WHERE LastName LIKE Concat('%',@LastName,'%')


文章来源: T-SQL and the WHERE LIKE %Parameter% clause