1

我试图弄清楚是否可以在用户定义的函数中插入一列作为参数。

我想要做的是从某个表中插入一列,然后在我调用该函数时返回该列的最小值。(出于我的目的,这不是我想要的实际最小值,我只希望它返回一个数字,无论是最小值、最大值、方差、标准差,还是任何其他给我一个标量值的数学方程)。

4

2 回答 2

1

您将需要使用sp_executesql来使用动态 SQL

CREATE procedure dbo.[myfunc](@COL NVARCHAR(20),
                             @result int output)
AS
BEGIN
DECLARE @SQLString nvarchar(500)
DECLARE @ParmDefinition nvarchar(500)

SET @SQLString = N'SELECT @max_valueOUT = max(' + @COL + ') FROM mytable'
SET @ParmDefinition = N'@max_valueOUT int OUTPUT'

EXECUTE sp_executesql @SQLString, @ParmDefinition, @max_valueOUT=@result OUTPUT
END

SQL小提琴

于 2013-01-10T21:47:51.120 回答
0

我以前做过。您必须创建一个用户定义的数据类型。然后将用户定义的类型传递给函数。

于 2013-01-10T21:53:52.180 回答