Development Tip

PATINDEX 패턴 인수에서 밑줄 문자를 이스케이프하는 방법은 무엇입니까?

yourdevel 2020. 11. 10. 22:21
반응형

PATINDEX 패턴 인수에서 밑줄 문자를 이스케이프하는 방법은 무엇입니까?


PATINDEX로 밑줄 위치를 찾는 해결책을 찾았습니다.

DECLARE @a VARCHAR(10)  
SET     @a = '37_21'

PRINT PATINDEX('%_%', @a)                    -- return 1 (false)
PRINT PATINDEX('%!%', REPLACE(@a, '_', '!')) -- return 3 (correct)

다른 아이디어가 있습니까? 밑줄 문자를 이스케이프하는 방법처럼?


나는 항상 대괄호로 해왔습니다. '%[_]%'


두 개의 밑줄을 일치 시키려면 각각을 괄호로 묶어야합니다.

'%[__]%' -- matches single _ with anything after

'%[_][_]%' -- matches two consecutive _

다음 []같이 문자를 사용하여 이스케이프 할 수 있습니다 .

PRINT PATINDEX('%[_]%', '37_21')

참고 URL : https://stackoverflow.com/questions/863534/how-to-escape-underscore-character-in-patindex-pattern-argument

반응형