У меня есть одна таблица, как показано на нижеКак разделить данные одного столбца на несколько столбцов в отчетах ssrs?
EmpId Название 1 Ram, шейкер, Сарат 2 Раджу, Рави
мне нужен выход, как
EmpId Название Имя 1 Ram Shaker, Sarath 2 Raju Ravi
У меня есть одна таблица, как показано на нижеКак разделить данные одного столбца на несколько столбцов в отчетах ssrs?
EmpId Название 1 Ram, шейкер, Сарат 2 Раджу, Рави
мне нужен выход, как
EmpId Название Имя 1 Ram Shaker, Sarath 2 Raju Ravi
Согласен с комментарием от @ped баран, но если вы идете по пути доклада, я бы с помощью функции InStr с функцией левого
поэтому у вас есть что-то вроде следующей функции в колонке/ячейку таблицы
=Left(Name, InStr(Name, ","))
Функция InStr находит первый экземпляр запятой, а отчеты - это позиция влево.
Теперь это предполагает, что запятая является разделителем.
Для первого столбца, вы можете использовать функцию Split и взять первый элемент:
=IIf(
Split(Fields!myColumn.Value, ",").Length > 1,
Split(Fields!myColumn.Value, ",").GetValue(0),
Fields!myColumn.Value
)
Для второго столбца, вы можете использовать правую функцию, чтобы захватить оставшиеся символы:
=IIf(
Split(Fields!myColumn.Value, ",").Length > 1,
Right(
Fields!myColumn.Value,
LEN(Fields!myColumn.Value) - LEN(Split(Fields!myColumn.Value, ",").GetValue(0)) - 1
),
""
)
Функция LEN()
предназначена для BIDS. Вместо этого используйте LENGTH()
, если вы находитесь в построителе отчетов.
Спасибо всем: в случае, если у меня около 20 имен, разделенных запятой относительно EmpID = 10 Мне нужно 10 имен в одной колонке и еще 10 в другой колонке , как это возможно –
Вместо того, чтобы делать из отчета SSRS, почему бы вам не сделать SQL-запрос, как ожидаемый результат? – pedram