J'ai trouvé une solution pour trouver la position d'un trait de soulignement avec PATINDEX:
DECLARE @a VARCHAR(10)
SET @a = '37_21'
PRINT PATINDEX('%_%', @a) -- return 1 (false)
PRINT PATINDEX('%!%', REPLACE(@a, '_', '!')) -- return 3 (correct)
Avez-vous d'autres idées? Vous voulez échapper au caractère de soulignement?
Je l'ai toujours fait avec des crochets: '%[_]%'
Pour faire correspondre deux traits de soulignement, chacun doit être placé entre crochets
'%[__]%' -- matches single _ with anything after
'%[_][_]%' -- matches two consecutive _
Vous pouvez vous échapper en utilisant les caractères [
Et ]
Comme ceci:
PRINT PATINDEX('%[_]%', '37_21')