右Amarundo有對此沒有簡單的解決方案,當你讓 多個值被傳遞到你的報表參數,它實際上 通過他們的逗號Deliminated字符串值的數據集查詢/存儲過程。
要 使其工作,你將需要兩個東西
1)創建其 接受一個逗號Deliminated字符串,分裂他們的功能。
2)修改你 存儲過程,並在那裏的方式,通過 參數傳遞到存儲過程和 起作用的傳遞到你的店 程序之前拆分值裏面的函數中添加此功能。
創建此功能1
功能定義
CREATE FUNCTION [dbo].[FnSplit]
(
@List nvarchar(2000),
@SplitOn nvarchar(5)
)
RETURNS @RtnValue table (Id int identity(1,1), Value nvarchar(100))
AS
BEGIN
WHILE(Charindex(@SplitOn,@List)>0)
BEGIN
INSERT INTO @RtnValue (value)
SELECT VALUE = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
SET @List = SUBSTRING(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
END
INSERT INTO @RtnValue (Value)
SELECT VALUE = ltrim(rtrim(@List))
RETURN
END
修改你strored過程是這樣的
存儲過程
CREATE Procedure usp_Multipleparameter (@Param1 VARCHAR(1000)= NULL)
AS
BEGIN
SELECT * FROM TableName
where ColumnNAME IN (SELECT Value FROM dbo.FnSplit(@Param1,','))
END
GO
穆罕默德阿里,我不想和你開始一場拳擊比賽......但是現在我覺得這篇文章的可讀性較差。 – Amarundo
我也不是一個拳擊手:),但它的一個指揮實踐,使你'數據'或'代碼'從你的問題的文字脫穎而出。那是所有:) –
關於數據你是絕對正確的。感謝那。我會繼續記住這一點。我指的是「用戶選擇」應在2個數據項之前進行,然後「我的CHARINDEX選擇將返回...」應該在2個數據項之後。 – Amarundo