Двойное разделение в SSRS / SQL - PullRequest
1 голос
/ 17 июня 2019

Я новичок в выражениях SQL и всегда учусь.

Я хочу дважды разделить строку, используя выражение в построителе отчетов служб отчетов SQL Server.

У меня в основном нагрузка компьютеров в разных подразделениях AD, и я извлекаю подразделение AD обратно в отчет в формате искаженного имени, поэтому оно равно

OU = 12345, OU =OUNAME, OU = OUNAME2, DC = домен, DC = локальный

в качестве примера.Я хочу оставить только одну определенную часть строки.

У меня уже есть что-то вроде этого ...

=(Split(Fields!AD_Location.Value, "=")).GetValue(2))

Но в результате получается что-то вроде "OUNAME, OU", когдая просто хочу "OUNAME", поэтому можно ли снова разделить результат первого разбиения, используя "," в качестве разделителя?

Я думал просто сделать еще одно разбиение, но что я могу указать в качестве входных данных?Можно ли сохранить первое разбиение в переменной в выражении, а затем использовать во втором разбиении?Любая помощь очень ценится.

=Split(=(Split(Fields!AD_Location.Value, "=")).GetValue(2), ",").GetValue(0)

Я пробовал вышеупомянутое, но, похоже, я не хочу сохранять отчет для его проверки, поэтому должна быть ошибка синтаксического анализа.

1 Ответ

1 голос
/ 18 июня 2019

Сначала мы можем избавиться от «OU =», используя Replace, давая нам строку с разделителями-запятыми, затем разделить на «,» и получить второе значение, возвращающее «OUNAME»:

=Split(Replace(Fields!AD_Location, "OU=", ""), ",").GetValue(1)

Я предполагаю, что мы заинтересованы только в извлечении второго значения из этой строки, и мы можем игнорировать часть «DC =», но если это важно для вас, вы можете вложить вторую Replace, чтобы также удалить этот префикс.

...