Próbowałem napisać instrukcję, która używa klauzuli WHERE LIKE „% text%”, ale nie otrzymuję wyników, gdy próbuję użyć parametru dla tekstu. Na przykład to działa:
SELECT Employee WHERE LastName LIKE '%ning%'
Spowoduje to zwrócenie użytkowników Flenning, Manning, Ningle itp. Ale to stwierdzenie nie:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'
Nie znaleziono wyników. Jakieś sugestie? Z góry dziękuję.
sql
sql-server-2008
tsql
dp3
źródło
źródło
Prawidłowa odpowiedź jest taka, że ponieważ
'%'
-sign jest częścią wyrażenia wyszukiwania, powinien być częścią WARTOŚCI, więc gdziekolwiek SET@LastName
(czy to z języka programowania, czy z TSQL), powinieneś ustawić go na'%' + [userinput] + '%'
lub w Twoim przykładzie:
DECLARE @LastName varchar(max) SET @LastName = 'ning' SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
źródło
możesz spróbować tego, używanego CONCAT
źródło