2016-11-07 4 views
0

Ich versuche, mehrere Werte an eine Abfrage über SSRS übergeben. Sie sind IDs ohne führende Nullen. Ich möchte die führenden Nullen hinzufügen, so dass die Gesamtzahl der Ziffern in der ID 7 ist. (87886,88352) wird zu (0087886,0088352). Ich hatte die Idee, einen Cursor zu verwenden oder ihn in eine temporäre Tabelle zu schreiben, aber egal, was ich zu tun habe, ich stolperte in das gleiche Problem, wo ich nicht viel mit einer Liste von IDs machen kann. Egal was ich versuche, irgendwann werde ich mich dynamisch mit der Liste beschäftigen müssen. Entweder die Nullen dynamisch anhängen, die Werte zählen oder sie als Zeilen zu einer Tabelle hinzufügen. Auf jeden Fall bin ich mir nicht sicher, wie ich auf diese Weise mit einer Liste von SSRS umgehen soll.Formatieren mehrwertigen SSRS Parameter

Das ist die Idee, für die ich gehe, wo @pIDs eine Liste von SSRS ist.

Antwort

0

Versuchen Sie, die führenden Nullen aus den Daten zu entfernen, statt:

SELECT * 
FROM PERSON 
WHERE -1 < CHARINDEX(',' + CAST(CAST(ID AS INT) AS VARCHAR(7)) + ',', ','[email protected]+',') 
+0

Es tut mir leid, aber ich weiß nicht folgen, wie das funktioniert. Ich sehe, dass Sie jeden einzelnen Wert als ein int werfen, um die führenden Nullen zu entfernen, aber ich verstehe nicht, wie dies jeden Wert separat analysiert. Durch den Komma-Index irgendwie? – user3908206

0

Zunächst fällt auf, dass der Datentyp:

RIGHT('0000000' + @pIDs,7) 

ganze Zahl ist. Ihre ID-Spalte darf nicht vom Typ int sein, da Sie sie im Format "0087886" sehen.

Zweitens, beachte, dass z.B.

select RIGHT('0000000' + 14,7) 

liefert 14 nicht 0000014.