Ответ 1
Это должно быть:
...
WHERE LastName LIKE '%' + @LastName + '%';
Вместо:
...
WHERE LastName LIKE '%@LastName%'
Или это:
...
WHERE LastName LIKE Concat('%',@LastName,'%')
Я пытался написать инструкцию, которая использует предложение WHERE LIKE '% text%', но я не получаю результаты, когда пытаюсь использовать параметр для текста. Например, это работает:
SELECT Employee WHERE LastName LIKE '%ning%'
Это приведет к возврату пользователей Flenning, Manning, Ningle и т.д. Но это утверждение не будет:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'
Результаты не найдены. Какие-либо предложения? Спасибо заранее.
Это должно быть:
...
WHERE LastName LIKE '%' + @LastName + '%';
Вместо:
...
WHERE LastName LIKE '%@LastName%'
Или это:
...
WHERE LastName LIKE Concat('%',@LastName,'%')
Правильный ответ заключается в том, что, поскольку '%'
-sign является частью вашего выражения поиска, он должен быть частью вашего VALUE, поэтому, если бы вы установили SET @LastName
(будь то с языка программирования или из TSQL) вы должны установить его на '%' + [userinput] + '%'
или, в вашем примере:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
вы можете попробовать это, используя CONCAT
WHERE LastName LIKE Concat('%',@LastName,'%')