Использование Regex с SQL Server BIDS - PullRequest
0 голосов
/ 27 июля 2011

Я пишу отчет, используя SQL Server BIDS (Business Intelligence Development Studio, VS2008), и у меня есть требование удалить пунктуацию из значений поля.

Например, если значение поля равно «Hello», Мир! ", Я хочу, чтобы в отчете было указано значение" Hello World ".Я знаю, что в этом примере было бы достаточно просто использовать функцию Replace, вложенную:

=Replace(Replace(Fields!Description.Value,",",""),"!","")

Но это быстро становится "уродливым", если мне нужно удалить больше, чем просто "," и "!»персонажи.Итак, вкратце:

Можно ли использовать регулярные выражения для форматирования значений полей в отчете BIDS для SQL Server ?

Если ответ «нет», это нормально,это поможет мне тратить время на поиски!Спасибо.

ОБНОВЛЕНИЕ

Использование Regex в формуле выражения (хотя это для телефонных номеров):

=System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")

1 Ответ

1 голос
/ 27 июля 2011

Для обработки большого набора строк на стороне клиента может потребоваться некоторое время.Поэтому я предлагаю перенести логику Regex на серверную часть.

Для этого вы можете использовать функцию CLR.

Найдите примеры здесь: http://www.simple -talk.com / sql / t-sql-программирования / clr-assembly-regex-functions-for-sql-server-by-example /

Обновление

Если вы хотите обрабатывать на стороне клиента, давайте рассмотрим использование выражений (включая регулярные выражения) в отчетах: http://msdn.microsoft.com/en-us/library/ms157328(v=SQL.100).aspx

...