홈페이지 » 어떻게 » SQL Server에서 특수 문자가있는 행 검색

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

    오늘 프로그래밍 문제를 해결하는 동안 특별한 구문을 사용하지 않고 % 또는 _와 같은 특수 문자가 포함 된 문자열 열에 LIKE 검색을 사용할 수 없다는 것을 알게되었습니다. 문제를 파악하는 데 몇 분 밖에 걸리지 않았지만 구문을 기억하는 것은 언제든지 쓰기 쉽습니다..

    그래서 네,이 게시물은 전적으로 내 이익입니다. 희망적으로 그것은 다른 누군가를 도울 것입니다..

    텍스트 "100 %"를 포함하는 모든 필드를 찾고 싶다면이 쿼리를 조합하십시오.

    SELECT * FROM tablename WHERE fieldname LIKE '% 100 %%'

    원하는 것 대신에 "100"을 포함하는 모든 행과 "100 %"를 포함하는 행을 가져옵니다..

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

    사각 브래킷 탈출

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

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

    T-SQL ESCAPE 구문

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

    SELECT * FROM tablename WHERE fieldname LIKE '% 100 \ %%'ESCAPE '\'

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

    개인적으로 두 번째 방법은 다루기가 더 쉽고 대괄호에서도 이스케이프 처리 할 수 ​​있습니다..