如何在不生成所有排列的情况下获取简单查询中的排列计数?
喜欢excel中的组合功能 置换(N,R)=结果
喜欢ermutation(6,2)=result,Permutation(12,3)=result,Permutation(20,4)=result
答案 0 :(得分:0)
也许这个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
修改 - 验证结果
http://stattrek.com/online-calculator/combinations-permutations.aspx