Как указать] символ внутри класса символов (функция MS SQL SERVER PATINDEX)?
'%["[]%' - for starting bracket - it works '%["]]%' - for ending - it does not
Похоже, что в PATINDEX невозможно правильно экранировать закрывающую скобку (]). ] один может быть записан дословно , но не может быть включен в набор символов.
Однако, согласно этому вопросу DBA.SE , есть некоторые обходные пути (полный пример см. В связанной статье):
PATINDEX('%[[-^{}:,]%' COLLATE Latin1_General_BIN2, MyJSONString)
PATINDEX('%[[' + CHAR(174) + '@]%', REPLACE(@test,']',CHAR(174)))
(NULLIF(PATINDEX('%[[{}:,]%', d.ResponseJSON), 0), NULLIF(PATINDEX('%]%', d.ResponseJSON), 0)))