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