T-SQL and the WHERE LIKE %Parameter% clause
I was trying to write a statement which uses the WHERE LIKE '%text%' clause, but I am not receiving results when I try to use a parameter for the text. For example, this works:
SELECT Employee WHERE LastName LIKE '%ning%'
This would return users Flenning, Manning, Ningle, etc. But this statement would not:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'
No results found. Any suggestions? Thanks in advance.
Solution 1:
It should be:
...
WHERE LastName LIKE '%' + @LastName + '%';
Instead of:
...
WHERE LastName LIKE '%@LastName%'
Solution 2:
The correct answer is, that, because the '%'
-sign is part of your search expression, it should be part of your VALUE, so whereever you SET @LastName
(be it from a programming language or from TSQL) you should set it to '%' + [userinput] + '%'
or, in your example:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
Solution 3:
you may try this one, used CONCAT
WHERE LastName LIKE Concat('%',@LastName,'%')