Stored procedures 在存储过程中传递多值参数

Stored procedures 在存储过程中传递多值参数,stored-procedures,Stored Procedures,我想要下面陈述的结果 Firstname emp_Fullname -------------------------------------- chetan Patel, Chetan mike Shah, Mike ronie Desai, Ronie create proc stored_procedure @firstna

我想要下面陈述的结果

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,','))
在给定的存储过程中,如何在参数中传递2个以上的emp_fullname?下面是我的函数dbo.FnSplit,它适用于多值Firstname参数,但不适用于多值fullname参数

exec stored_procedure 'chetan,ronie', 'Patel, Chetan,Shah, Mike'

从dbo中选择值的Firstname。FnSplit@firstname,'|' 和emp_Fullname中的SELECT Value FROM dbo。FnSplit@fullname|

我发现仍然在SSRS中双击数据集,单击parmater而不是默认值,然后选择expression并将其设置为join@firstname.value,|和其他join@fullname.value,|现在运行它。多值参数应通过执行上述步骤找到。
多亏了我自己lol:我花了3天的时间才想出来,以为你们可以用它

欢迎使用StackOverflow:如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮{},以很好地格式化和语法突出显示它!嘿,我刚改进了格式,现在再试一次,看看你能不能帮我。提前谢谢
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