문제
[["는 유니 코드 문자로 분류되지 않습니다 http://en.wikipedia.org/wiki/list_of_unicode_characters (내 추측) 이것이 왜 작동하지 않는지에 대한 :
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v like '[x]825'
해결책
[]
패턴 일치에 대한 다양한 문자를 정의합니다. 같은 진술에서 특별한 의미가 있습니다. 여기에 대한 문서가 있습니다.
그 캐릭터를 명시 적으로 찾고 있다면 다음과 같이 탈출해야합니다.
declare @v nvarchar(255)
set @v = '[x]825'
select 1
where @v LIKE '![x]825'
ESCAPE '!'
다른 팁
x]는 SQL Server에 구체적인 의미가 있습니다. 브래킷은 매우 기본적인 정규 표현식에 사용됩니다. 따라서 당신이 검색하는 것은 첫 번째 문자가 문자 X를 포함하는 곳이며 물론 변수의 첫 번째 문자가 아닙니다.
당신이 havea awildcard를하려고하지 않는 한, 쿼리가 인덱스 대신 테이블 스캔을 사용하기 때문에 와일드 카드를 첫 번째 문자로 만드는 것은 나쁜 관행입니다.
제휴하지 않습니다 StackOverflow