2013-08-16 2 views
1

SQL Server 2008 R2에서 like 연산자를 사용하여 특수 문자를 검색해야한다는 요구 사항이 있습니다.SQL Server에서 like 연산자를 사용하여 특수 문자를 검색하는 방법은 무엇입니까?

예 : 위의 조건에 대한

Name = sk'saintho 

select * from table1 where name like 'sk'saintho' 

나는 오류를

근처의 구문이 잘못되었습니다 'saintho'을 얻고있다.

문자열 ''다음에 닫지 않는 따옴표.

이 문제에 대한 아이디어를 제공해 주시면 감사하겠습니다.

+1

당신은'like 'sk''saintho''를 사용해야합니다. –

답변

1

SQL Server Management Studio를 사용하는 경우 구문 서식에 쿼리에 문제가 있음이 나타납니다.

select * from table1 where name like 'sk'saintho' 

sk 구성 요소는 리터럴 문자열로, 빨간색이 될 것이며, saintho은 일반 검은 색 텍스트가 될 것입니다. SQL은 ' 문자가 문자열의 일부라는 것을 이해하지 못하며 대신 문자열의 끝이라고 가정합니다.

다른 많은 언어와 마찬가지로 문자열에 문자열 종료 기호를 포함하는 올바른 방법은 두 번 포함시키는 것입니다. 이 문자열을 두 번 사용하면 구문 분석기가 문자열을 끝내지 않고 문자열에 '을 포함 시키려고합니다.

select * from table1 where name like 'sk''saintho' 

당신이 ' 문자가 기존의 모든 항목을 찾으려면 당신은

select * from table1 where name like '%''%' 

파서는 like %'%으로 이것을 해석하는 like 문에서 같은 패턴을 사용할 수 있으며 행을 찾을 수 있습니다 여기서 이름은 '입니다.

+0

감사합니다 kirk, 저는 동적 SQL에서 연산자를 사용하고 있습니다. 그래서 하나의 작은 따옴표를 추가하면 정상적인 이름처럼 다른 조건에 대해 연산자가 실패합니다. 그래서 내 요구 사항은 비록 우리가 같은 연산자에 대한 추가 따옴표를 포함해서는 안된다 특별한 charecters을 전달 오전 – Prasad

+0

안녕하세요 Prasad. 내 대답을 업데이트했습니다. 잘하면 당신을 도울 것입니다. –

관련 문제