1

ユーザー定義関数のパラメーターとして列を挿入できるかどうかを調べようとしています。

私がしたいのは、特定のテーブルから列を挿入し、関数を呼び出すときにその列の最小値を返すことです。(私の目的では、必要な実際の最小値ではありません。最小値、最大値、分散、標準偏差、または 1 つのスカラー値を与えるその他の数式のいずれであっても、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 に答える