Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Transformando um parâmetro de vários valores em uma tabela temporária no SQL Server Business Intelligence Development Studio


Como foi dito, você precisa de algum tipo de função de divisão, para análise do desempenho de vários métodos Divida as strings da maneira certa – ou da próxima melhor maneira é uma excelente leitura. Depois de ter sua função, você precisa definir seu parâmetro de consulta como uma string, em vez de uma tabela:

Portanto, sua consulta se tornaria realmente:
DECLARE @pEmails TABLE (EmailAddress varchar(255));

INSERT @pEmails (EmailAddress)
SELECT  Value
FROM    dbo.Split(@pEmallString);

Em seguida, vá para as propriedades do conjunto de dados e, em vez de passar o parâmetro multivalor @pEmails para o conjunto de dados, em vez disso, crie um novo @pEmailString , e defina o valor como uma expressão, que deve ser:
=Join(Parameters!pEmails.Value, ",")



Isso transforma seu parâmetro de vários valores em uma única string delimitada por vírgulas. Parece muito ao contrário que você precisa convertê-lo em uma string delimitada, apenas para depois dividi-lo em SQL, infelizmente não conheço uma maneira melhor.