SQL服务器中的排列COUNT

时间:2017-02-01 18:03:27

标签: sql-server

如何在不生成所有排列的情况下获取简单查询中的排列计数?

喜欢excel中的组合功能 置换(N,R)=结果

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

1 个答案:

答案 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