gpt4 book ai didi

mysql - 将多个参数传递给sql函数

转载 作者:行者123 更新时间:2023-11-29 01:19:44 27 4
gpt4 key购买 nike

我有一个包含如下数据的sql表

SnackID        Name
1 Chicken
2 Soda
3 Chocolate
4 IceCream

我有以下用户定义的函数,它接受参数作为具有多个值的字符串,例如“Chicken”、“Soda”。

CREATE FUNCTION GetSnackCodes
(
@myValues varchar(max)
)
RETURNS @SnacksCodes TABLE
(
mySnackCoded int NULL
)
AS
BEGIN

insert into @SnacksCodes
select SnackID from Snack where Name In (@myValues)

return ;
END;
GO

当我尝试通过将多个值传递给此变量来调用此函数时,我没有得到预期的结果。我猜它正在尝试将多个(逗号分隔)值作为单个值进行搜索。

关于如何传递此值的任何其他可能的解决方法?

最佳答案

您的猜测是正确的 - 当您传递一个带有逗号分隔值的字符串时,SQL Server 将其视为单个字符串值。

使用table valued parameter相反:

CREATE TYPE SnackCode As Table (
Name NVARCHAR(50)
);
GO;
CREATE FUNCTION GetSnackCodes (
@myValues SnackCode
)
RETURNS @SnacksCodes TABLE (
mySnackCoded int NULL
)
AS
BEGIN
insert into @SnacksCodes
select SnackID
from Snack
where Name In (select Name from @myValues)
return ;
END;
GO

关于mysql - 将多个参数传递给sql函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48006833/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com