如何在PATINDEX模式参数中转义下划线字符?
我find了一个用PATINDEX查找下划线位置的解决scheme:
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')