71 votes

T-SQL : Comment échapper à caractère de soulignement PATINDEX modèle argument?

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 ?
Comme un moyen d'échapper le caractère de soulignement ?

Merci

121voto

Curt Hagenlocher Points 12432

J'ai toujours fait avec des crochets: '%[_]%'

26voto

Leif Neland Points 145

Pour correspondre à deux caractères de soulignement, chacune bien être entre crochets

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

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

6voto

Charlie Points 11

Vous pouvez échapper à l'aide de l' [ et ] caractères comme ceci:

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X