zoukankan      html  css  js  c++  java
  • 数学中的组合算法(sql)

    概念:  
      排列:   P(n,r)     从n个中选r个进行排列(与顺序有关)  
      组合:   C(n,r)     从n个中选r个进行组合(与顺序无关)    
    create   procedure   sp_test(@n   int,@r   int)  
      as  
      begin  
              if   isnull(@n,0)<isnull(@r,0)  
                      return    
       
              set   rowcount   @n  
              select   identity(int,1,1)   as   num   into   #   from   sysobjects   a,syscolumns   b  
              set   rowcount   0  
               
              declare   @sql   varchar(8000),@ord   varchar(8000),@i   int  
              set   @sql='select   *   from   #   [1]'  
              set   @ord='[1].num'  
              set   @i=1  
              while   @i<@r  
              begin  
                      set   @i=@i+1  
                      set   @sql=@sql+'   inner   join   #   ['+rtrim(@i)+']   on   ['+rtrim(@i)+'].num>['+rtrim(@i-1)+'].num'  
                      set   @ord=@ord+',['+rtrim(@i)+'].num'  
              end  
       
              set   @sql=@sql+'   order   by   '+@ord  
       
              print   @sql  
               
              exec(@sql)  
      end  
      go  
       
      exec   sp_test   5,1  
      exec   sp_test   5,2  
      exec   sp_test   5,3  
      go  
       
      drop   procedure   sp_test  
      go
  • 相关阅读:
    local 不能解析为127.0.0.1
    完全使用接口方式调用WCF 服务
    【人生】自己对于求职应聘的一些感受
    OO的经典例子
    剪刀、石头、布机器人比赛
    TextTree 文本资料收集轻量级工具
    两个代替重复输入的小工具
    桌面助手 Desktop Helper 自动帮你关闭指定的窗口
    磁盘可用空间平衡
    用C#制造可以继承的“枚举”
  • 原文地址:https://www.cnblogs.com/luluping/p/1532266.html
Copyright © 2011-2022 走看看