2016-11-07 61 views
0

我想通過SSRS將多個值傳遞給查詢。它們是沒有前導零的ID。我想添加前導零,使得ID中的總數位數爲7.(87886,88352)變爲(0087886,0088352)。我的想法是使用遊標或將其放入臨時表中,但無論我想要做什麼,我都會遇到同樣的問題,因爲我無法使用ID列表做很多事情。無論我嘗試什麼,在某些時候我都需要動態地處理這個列表。可以動態附加零,計算值或將它們作爲行添加到表中。無論如何,我只是不確定如何以這種方式處理來自SSRS的列表。格式化多值SSRS參數

SELECT * FROM PERSON WHERE ID IN (RIGHT('0000000' + @pIDs,7)) 

這就是我要做的想法,其中@pIDs是來自SSRS的列表。

回答

0

嘗試從代替數據移除前導零:

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

我很抱歉,但我不遵循這是如何工作。我看到你正在將每個單獨的值作爲一個int來刪除前導零,但我不會按照這個實際分別解析每個值。以某種方式通過逗號索引? – user3908206

0

首先,請注意的數據類型:

RIGHT('0000000' + @pIDs,7) 

是整數。您的ID列可能不是int類型,因爲您看到它們是'0087886'格式。

其次,請注意,例如,

select RIGHT('0000000' + 14,7) 

返回14不0000014.