gpt4 book ai didi

sql - 将参数的默认值传递给表值函数

转载 作者:行者123 更新时间:2023-12-02 07:35:02 26 4
gpt4 key购买 nike

create function Xtest
(@d1 varchar(3)=null
,@d2 varchar(3)=null)
returns table
as
return
with code_list(code_pattern)
as
(
select x.code_pattern
from (values (@d1),(@d2)) as x(code_pattern)
where x.code_pattern is not null
),y
as
(
select substring(code,1,3) as code
from tblicd
where substring(code,1,3) in
(
select * from code_list
)
)

select * from y

是我的函数,当它完全完成时才会有意义。如果我尝试运行此查询但不提供两个参数,它将失败。我有与存储过程相同的代码,如果我只输入一个参数,它工作正常并将第二个参数分配为空。如果未提供参数,是否可以将 null 作为参数值传递,就像使用存储过程一样?

该函数确实可以编译。

最佳答案

调用函数时不能省略参数。这并不是你在语法上做错了什么,它只是 SQL Server 不支持而已。存储过程有可选参数,但函数没有。

但是,您可以提供 default :

SELECT code FROM dbo.Xtest(default, default);

或者在这种情况下,如果您知道默认值是 NULL你可以这样做:

SELECT code FROM dbo.Xtest(NULL, NULL);

还有please always use the schema prefix (在本例中 dbo. )创建和引用任何对象时,尤其函数。

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

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