/ / SQL Server에서 특수 문자가있는 행 검색

SQL Server에서 특수 문자가있는 행 검색

오늘 프로그래밍 문제를 해결하는 동안특수 구문을 사용하지 않으면 % 또는 _와 같은 특수 문자가 포함 된 문자열 열에 대해 LIKE 검색을 사용할 수 없습니다. 문제를 파악하는 데 몇 분 밖에 걸리지 않았지만 문제를 작성하면 구문을 기억하는 것이 항상 쉽습니다.

예,이 게시물은 전적으로 제 이익을위한 것입니다. 잘하면 그것은 다른 사람도 도울 것입니다.

"100 %"라는 텍스트가 포함 된 필드를 찾고 싶다고 가정 해 보겠습니다.

필드 이름이 '% 100 %%'인 테이블 이름에서 * 선택

원하는 것 대신 "100"을 포함하는 모든 행과 "100 %"를 포함하는 모든 행을 얻게됩니다.

여기서 문제는 SQL Server가 퍼센트 기호, 밑줄 및 대괄호를 특수 문자로 사용한다는 것입니다. 이스케이프하지 않고 LIKE 쿼리에서 일반 문자로 사용할 수 없습니다.

대괄호 탈출

% 또는 _를 대괄호로 묶어 내부의 문자가 일반 문자임을 SQL Server에 알릴 수 있습니다.

SELECT * FROM tablename WHERE fieldname LIKE‘% 100 [%] % '

T-SQL ESCAPE 구문

또는 ESCAPE 연산자를 쿼리에 추가하고 이스케이프하려는 값 앞에 문자를 추가 할 수 있습니다.

‘% 100 %%’이스케이프‘와 같은 필드 이름에서 SELECT * FROM *

쿼리의 ESCAPE '부분은 SQL 엔진에 문자 뒤의 문자를 와일드 카드 대신 리터럴 문자로 해석하도록 지시합니다.

개인적으로 두 번째 방법은 다루기가 더 쉬우 며 대괄호를 피하기 위해 사용할 수 있습니다.