Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL函数参数默认为select_Sql_Function_Parameters_Azure Sql Database_Parameter Passing - Fatal编程技术网

SQL函数参数默认为select

SQL函数参数默认为select,sql,function,parameters,azure-sql-database,parameter-passing,Sql,Function,Parameters,Azure Sql Database,Parameter Passing,函数A,标量,返回smallint(一年) 函数B,标量,返回smallint(一个月) 函数C,表格,根据年份和月份显示用户 他们工作得很好 我想将函数C的默认参数设置为来自FuncA和B的参数,如下所示: @year smallint=SELECT FunctA(),@month smallint=SELECT FunctB() 这有什么关系吗 我们使用的是Azure SQL托管实例。您可以使用的东西是 IF @year IS NULL BEGIN SET @year = functa

函数
A
,标量,返回smallint(一年)
函数
B
,标量,返回smallint(一个月)
函数
C
,表格,根据年份和月份显示用户

他们工作得很好

我想将函数
C
的默认参数设置为来自Func
A
B
的参数,如下所示:

@year smallint=SELECT FunctA(),@month smallint=SELECT FunctB()
这有什么关系吗


我们使用的是Azure SQL托管实例。

您可以使用的东西是

IF @year IS NULL
BEGIN
  SET @year = functa();
END;

IF @month IS NULL
BEGIN
  SET @month = functb();
END;

(或者您没有披露的DBMS中的任何模拟语法)。
如果需要默认值,请将
NULL
s作为参数传递。

您使用的是什么RDBMS?Azure SQL。我添加到上面我添加了标签。在将来,准确地标记你的问题会帮助你,因为它会吸引最有能力给你好答案的人的注意力。除非你在SQL2019上尝试过,否则不要使用标量。在表函数中不允许。除非我把“IF”放错了位置好吧,好吧,没有任何细节很难说…@amomy它是允许在多步骤表值函数中使用的。内联表值函数中不允许使用它。如果您有一个内联表值函数,则可以在任何需要
@year
的地方使用
isnull(@year,functa())
,但这可能会降低性能。您可以使用各种方法来解决这个问题,例如
外部应用(选择isnull(@year,functa())作为实际值(year)
,但并不保证它的性能会更好。