2017-01-27 3 views
1

У меня нет доступа к sp, но я создал динамический запрос, который будет принимать многозначный параметр, передать его переменной , который затем будет использоваться в запросе. Короткий пример моего запроса.Передача многозначного параметра в переменную в SSRS без хранимой процедуры

DECLARE @Parameter2 varchar(200) 
SET @Parameter2 = @Parameter1 

SELECT personID from foo where filename IN (@Parameter2) 

У меня есть отчет для параметра @ Parameter1, что позволит несколько значений, которые будут приходить из другого запроса из набора данных. Я могу передать одно имя файла из @ Parameter1 в @ Parameter2 без каких-либо проблем, но при выборе нескольких из них я получаю «недопустимый синтаксис в ...», потому что параметры передаются как «filename1, filename2, filename3».

Как я могу проанализировать эти несколько параметров от @ Parameter1 до @ Parameter2, чтобы его можно было использовать в запросе без хранимой процедуры? Я пробовал искать в разных разделах здесь и разбивать @ Parameter1 на "," и присоединять переменная в свойствах набора данных, но я по-прежнему получаю либо неверную синтаксическую ошибку, либо объявляю скалярную переменную ошибку.

У меня нет большого опыта работы в SQL Server, но, похоже, сложно разбить строки после того, как они были выбранных в предварительном просмотре, без строк, проходящих через sp сначала.

ответ

0

Так как вы можете сделать DYNAMIC SQL, рассмотрим следующую

DECLARE @Parameter1 varchar(200) = 'filename1,filename2,filename' 

DECLARE @Parameter2 varchar(200) = ''''+Replace(@Parameter1,',',''',''')+'''' 

Declare @SQL varchar(max) = 'SELECT personID from foo where filename IN ('[email protected]+')' 
Exec(@SQL) 

сгенерированного SQL выглядит следующим образом:

SELECT personID from foo where filename IN ('filename1','filename2','filename') 
+0

Спасибо за ваше время. Есть ли способ реализовать этот запрос, чтобы принять неизвестное количество имен файлов, а не перечислять их? –

+0

@ShannonRogers это будет. вы можете передать 1 в n запятыми. –

+0

Awesome. Благодаря! –

Смежные вопросы