sql >> Databasteknik >  >> RDS >> Sqlserver

Förvandla en parameter med flera värden till en tillfällig tabell i SQL Server Business Intelligence Development Studio

Som sagts behöver du någon form av delad funktion, för analys av prestanda för olika metoder Dela strängar på rätt sätt – eller näst bästa sätt är en utmärkt läsning. När du har din funktion måste du definiera din frågeparameter som en sträng, snarare än en tabell:

Så din fråga skulle faktiskt bli:

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

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

Gå sedan till dina datauppsättningsegenskaper och istället för att skicka flervärdesparametern @pEmails till datasetet, skapa istället en ny @pEmailString , och ställ in värdet som ett uttryck, vilket ska vara:

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

Detta förvandlar din flervärdesparameter till en enda kommaavgränsad sträng. Det verkar ganska bakvänt att du behöver konvertera den till en avgränsad sträng, bara för att sedan dela upp den i SQL, tyvärr vet jag inte något bättre sätt.



  1. Spool-kommando:Mata inte ut SQL-satsen till filen

  2. Sparar JSON-sträng till MySQL-databas

  3. Dela kommaseparerad sträng i en PL/SQL-lagrad proc

  4. MySQL-handledning:MySQL IN-klausul (grundläggande)