我试图弄清楚是否可以在用户定义的函数中插入一列作为参数。
我想要做的是从某个表中插入一列,然后在我调用该函数时返回该列的最小值。(出于我的目的,这不是我想要的实际最小值,我只希望它返回一个数字,无论是最小值、最大值、方差、标准差,还是任何其他给我一个标量值的数学方程)。
我试图弄清楚是否可以在用户定义的函数中插入一列作为参数。
我想要做的是从某个表中插入一列,然后在我调用该函数时返回该列的最小值。(出于我的目的,这不是我想要的实际最小值,我只希望它返回一个数字,无论是最小值、最大值、方差、标准差,还是任何其他给我一个标量值的数学方程)。
您将需要使用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
我以前做过。您必须创建一个用户定义的数据类型。然后将用户定义的类型传递给函数。