Это популярная функция в SQL Server, поэтому я предполагаю, что вы работаете с этим.Убедитесь, что ваш параметр имеет тип Varchar (MAX).@ChainId передается как ваша строка (в идеале для SSRS), а ',' передается как ваш разделитель.В SSRS, если у вас есть текстовое поле для ввода пользователями нескольких значений вручную, они будут вводить что-то вроде «значение1, значение2, значение3».
Проверьте это:
Declare @Yes_No Varchar(Max)
Set @Yes_No = 'y,n'
Select @yes_no
Select * from SplitString('y,n',',')
Select * from SplitString(@Yes_No,',')
Ваши результаты будут
y,n
----
y
n
----
y
n
Почему я говорю использовать Varchar (Max), а не int, или Varchar (10)например, потому что это остановит функцию от преждевременного чтения всех значений.
Попробуйте это:
Declare @Yes_No Varchar(1)
Set @Yes_No = 'y,n'
Select * from SplitString(@Yes_No,',')
Результат будет:
y
Причина в том, что функция принимает значение длиной всего 1 символ и разделяетсятот.Как видите, разделять особо нечего.
Именно так SSRS принимает параметры.FN_Split не обязательно является встроенной функцией, но широко популярной и предназначена для передачи нескольких значений в строку с предварительно заданным разделителем.Поэтому убедитесь, что вы также перейдете к своему параметру в отчете и укажите, что он будет иметь несколько значений.Вы также можете предоставить список потенциальных значений для ваших пользователей на выбор.Вы можете сделать это, вручную заполнив небольшой список или предоставив другой источник данных в виде хранимой процедуры или таблицы.