Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 如何在查询中使用变量和更改用户定义函数_Sql_Sql Server_Function_Sql Server 2014_User Defined Functions - Fatal编程技术网

Sql 如何在查询中使用变量和更改用户定义函数

Sql 如何在查询中使用变量和更改用户定义函数,sql,sql-server,function,sql-server-2014,user-defined-functions,Sql,Sql Server,Function,Sql Server 2014,User Defined Functions,我在sql server中定义了一些用户定义的函数。例如: 选择dbo.sumtimes(1,2)将返回3 及 选择dbo.MaxItems(5,3)将返回5 其他一些功能可能更复杂。 我还将变量及其公式表达式保存在表中: IdVar Title Formula ----- ----- --------------------- 1 Sum dbo.SumItems(@a , @b) 2 Max dbo.maxItems(@a , @b) 我的参数在另一个表中: a

我在sql server中定义了一些用户定义的函数。例如:

选择dbo.sumtimes(1,2)
将返回
3

选择dbo.MaxItems(5,3)
将返回
5

其他一些功能可能更复杂。 我还将变量及其公式表达式保存在表中:

IdVar Title Formula 
----- ----- ---------------------
1     Sum   dbo.SumItems(@a , @b)
2     Max   dbo.maxItems(@a , @b)
我的参数在另一个表中:

a   b
--  --
1   2
5   3
现在,我想连接这两个表并得到以下结果:

Parameter a   Parameter b  Variable Title  Result
-----------   -----------  --------------  ------
1             2            Sum             3
1             2            Max             2
5             3            Sum             8
5             3            Max             5

我也从另一个角度提出了我的问题。

昨天发布了与此非常相似的内容。如您所知,您只能使用动态sql执行此类功能

现在,我没有你的功能,所以你必须提供这些

我在过去也做过类似的事情,一次计算了大量收入/资产负债表的一系列比率

下面是一种方法。(但是,我没有挖掘这两个参数……似乎有点有限,但我相信您可以根据需要进行扩展)

返回

ID  ParameterA  ParameterB  Title      Value
1   1           2           Sum         3
2   1           2           Multiply    2
1   5           3           Sum         8
2   5           3           Multiply    15

SQL查询并不是为实现这一点而设计的。在这种情况下,游标可能是最好的方法。游标?你能解释更多吗?这是现实世界的需要吗?你想达到什么目标?我很确定,有更好的方法……是的,这是一个真正的需要,我正在开发一个数据分析软件,我需要使用用户定义的函数计算许多变量。@Shnugo,因为我怀疑这是真实世界。我做了一些非常类似的事情,在一次过程中动态计算了许多LOB的一系列财务比率。
ID  ParameterA  ParameterB  Title      Value
1   1           2           Sum         3
2   1           2           Multiply    2
1   5           3           Sum         8
2   5           3           Multiply    15