itsource

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

mycopycode 2023. 6. 21. 22:34
반응형

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

반응형