wake-up-neo.com

Wie kann ein Unterstrich im PATINDEX-Musterargument ausgeblendet werden?

Ich habe mit PATINDEX eine Lösung gefunden, um die Position eines Unterstrichs zu ermitteln:

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

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

Hast du noch andere Ideen? Möchtest du dem Unterstrich entkommen?

67
podosta

Ich habe es immer mit Klammern gemacht: '%[_]%'

115

Um zwei Unterstriche zuzuordnen, muss jeder in eckige Klammern gesetzt werden

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

'%[_][_]%' -- matches two consecutive _
23
Leif Neland

Sie können mit den Zeichen [ Und ] Wie folgt umgehen:

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

5
Charlie