К сожалению, регулярное выражение поддержки в MSSQL ужасна, ближайший оператор «как», который скучает по функциональности регулярных выражений, отданной в миле. Вам придется взглянуть на разбиение регулярного выражения на несколько похожих утверждений и, вероятно, сделать некоторые грязные манипуляции строк, чтобы подражать тому, что вы пытаетесь достичь.
Например, если мы могли бы реплицировать [[: blank:]] с помощью [] (прочитайте [Space Tab]), мы не можем применить нуль или более из них, поэтому вместо этого мы должны вывести их из выражения, но это соответствовало бы «ASD», поэтому нам нужно проверить наличие ASD в неизмененной строке.
Я думаю, что следующее заменит ваше регулярное выражение, но оно было быстро снесено, поэтому тщательно проверяйте его.
replace(replace(somefield,' ',''),' ','') in ('ASD','|ASD','|ASD|','ASD|')
and
somefield like '%ASD%'
Опять же в моих операторах заметок одно пространство, другое - вкладка.
Возможный дубликат [Регулярные выражения на серверах SQL Server?] (Http://stackoverflow.com/questions/267921/regular-expressions-in-sql-server-servers) –
Я не ищу регулярные выражения в MSSQL я просто хочу любое эквивалентное выражение. – akosch
Отметьте это сообщение: http://stackoverflow.com/questions/267921/regular-expressions-in-sql-server-servers Надеюсь, это поможет. – Hal