Sql server SQL SERVER中的置换计数

Sql server SQL SERVER中的置换计数,sql-server,Sql Server,在不生成所有置换的情况下,如何获得简单查询中的置换计数 excel中的类组合函数 置换(n,r)=结果 像ermutation(6,2)=result,Permutation(12,3)=result,Permutation(20,4)=result也许这个UDF会有所帮助 例如 Select [dbo].[udf-Stat-Permutation](12,3) 返回 1320 有兴趣的UDF CREATE Function [dbo].[udf-Stat-Permutation](@Obj

在不生成所有置换的情况下,如何获得简单查询中的置换计数

excel中的类组合函数 置换(n,r)=结果


ermutation(6,2)=result,Permutation(12,3)=result,Permutation(20,4)=result

也许这个UDF会有所帮助

例如

Select [dbo].[udf-Stat-Permutation](12,3)
返回

1320
有兴趣的UDF

CREATE Function [dbo].[udf-Stat-Permutation](@Objects int,@Sets int)
Returns Float
As
Begin
    Declare @P float,@C float
    Select @P=@Objects,@C=@Objects
    While @C>@Objects-@Sets+1 
        Begin
            Set @P = @P * (@C-1)
            Set @C = @C - 1
        End
    Return @P
End
-- Select [dbo].[udf-Stat-Permutation](15,4)   -- 32,760
-- Select [dbo].[udf-Stat-Permutation](10,10)  -- 3,628,800
-- Select [dbo].[udf-Stat-Permutation](25,25)  -- 1.5511210043331E+25
编辑-验证结果

1320