T-SQL에서 백분율 기호를 어떻게 이스케이프합니까?


188

질문에도 답 이 있지만 DB2를 구체적으로 언급합니다.

이미 퍼센트 기호 가있는 문자열 을 어떻게 검색 합니까? 연산자 사용 된 심볼은 와일드 카드를 의미한다.LIKE%LIKE%

답변:


285

대괄호를 사용하십시오. 75 %를 찾으면

WHERE MyCol LIKE '%75[%]%'

이것은 ESCAPE보다 간단하며 대부분의 RDBMS에 공통입니다.


2
또한 사용자 함수, 연결 등과 같은 다른 구문에서는 퍼센트 기호를 벗어날 필요가 없습니다.
Bron Davies


2
밑줄 와일드 카드 문자도 이스케이프 할 수 있습니다 [_]. 그러면 열린 대괄호를 어떻게 벗어날 수 있습니까? 이와 같이 : [[]. sqlserver2000.databases.aspfaq.com/…
Csaba Toth

ESCAPE 절을 사용하는 것은 MS의 두뇌 손상 인용 메커니즘보다 이해하기 쉽습니다.
Suncat2000

52

ESCAPE와 함께 키워드를 사용할 수 있습니다 LIKE. %문자열 에있는 기존의 각 부호 앞에 원하는 문자 (예 : '!')를 추가 한 다음 ESCAPE '!'쿼리 끝에 추가하십시오 (또는 선택한 문자).

예를 들면 다음과 같습니다.

SELECT *
FROM prices
WHERE discount LIKE '%80!% off%'
ESCAPE '!'

이렇게하면 데이터베이스가 80 %를 검색 할 문자열의 실제 부분으로 간주하고 80 (와일드 카드)으로 처리하지 않습니다.

에 대한 MSDN 문서 LIKE



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.