Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Umwandeln eines mehrwertigen Parameters in eine temporäre Tabelle in SQL Server Business Intelligence Development Studio

Wie bereits erwähnt, benötigen Sie eine Art Split-Funktion zur Analyse der Leistung verschiedener Methoden Strings richtig aufteilen – oder auf die zweitbeste Art ist eine hervorragende Lektüre. Sobald Sie Ihre Funktion haben, müssen Sie Ihren Abfrageparameter als Zeichenfolge und nicht als Tabelle definieren:

Ihre Abfrage würde also tatsächlich folgendermaßen aussehen:

DECLARE @pEmails TABLE (EmailAddress varchar(255));

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

Gehen Sie dann zu Ihren Dataset-Eigenschaften und übergeben Sie stattdessen den mehrwertigen Parameter @pEmails zum Datensatz hinzufügen, erstellen Sie stattdessen einen neuen @pEmailString , und legen Sie den Wert als Ausdruck fest, der folgendermaßen lauten sollte:

=Join(Parameters!pEmails.Value, ",")

Dadurch wird Ihr mehrwertiger Parameter in eine einzelne, durch Kommas getrennte Zeichenfolge umgewandelt. Es scheint ziemlich rückständig zu sein, dass Sie es in eine Zeichenfolge mit Trennzeichen konvertieren müssen, nur um es dann in SQL aufzuteilen, leider kenne ich keinen besseren Weg.