[sql] T-SQL 및 WHERE LIKE % Parameter % 절

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%'


답변

정답은 '%'-기호가 검색 표현식의 일부 이기 때문에 VALUE의 일부 여야하므로 설정하는 곳 @LastName(프로그래밍 언어 또는 TSQL에서)로 설정해야한다는 것입니다.'%' + [userinput] + '%'

또는 귀하의 예에서 :

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


답변

당신은 이것을 시도 할 수 있습니다, 사용 CONCAT

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


답변