Firstname emp_Fullname
--------------------------------------
chetan Patel, Chetan
mike Shah, Mike
ronie Desai, Ronie
create proc stored_procedure
@firstnamer varchar(max)
@fullname varchar(max)
as
begin
select ......
from....
where Firstname in (SELECT Value FROM dbo.FnSplit(@firstname,','))
--and emp_Fullname in (SELECT Value FROM dbo.FnSplit(@fullname,','))
我想要以下声明的结果
exec stored_procedure 'chetan,ronie', 'Patel, Chetan,Shah, Mike'
如何在给定存储过程中传递超过2个emp_fullname
参数?以下是我的函数dbo.FnSplit
,它适用于多值Firstname
参数,但不适用于多值fullname
参数。
ALTER 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
答案 0 :(得分:0)
中的名字(SELECT值FROM dbo.FnSplit(@ firstname,'|')) 和emp_Fullname(SELECT Value FROM dbo.FnSplit(@fullname,'|'))
并且我认为仍然在SSRS中双击数据集单击parmater而不是默认值选择表达式并将其设置为“join(@ firstname.value,”|“)”和其他“join”的相同内容(@ fullname.value ,“|”)“现在运行它。通过上述程序可以找到多个valye参数。 感谢我的自我大声笑:)我花了3天时间想到,以为你们可以使用它了!