Search code examples
sql-serverregext-sqlescapingsql-like

How to escape underscore character in PATINDEX pattern argument?


I've found a solution for finding the position of an underscore with PATINDEX :

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

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

Have you other ideas? Like a way to escape the underscore character?


Solution

  • I've always done it with brackets: '%[_]%'