`
afeiod
  • 浏览: 23038 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

bbbbb

    博客分类:
  • SQL
阅读更多
CREATE   PROCEDURE   usp_get_next_user  
                                                                              @vipid   varchar(32),  
                                                                              @role     int  
    AS  
   
  begin  
          declare     @sql   varchar(128)  
          declare   @tem_vip   varchar(32)  
          declare   @tem_role   int  
          declare   @mycursor   cursor  
          set   @mycursor=   cursor   local   scroll   for     select   vip_id,work_role   from   user_info   where   previous_user=+@vipid  
          open   @mycursor  
          fetch   next   from   @mycursor   into   @tem_vip,@tem_role  
          while   @@fetch_status   =   0  
          begin    
                  print   '--vip   id---'+@tem_vip+'------role---'+cast(@tem_role   as   varchar)  
                  if(@role   =   @tem_role)  
                  begin  
                        set   @sql='   insert   into   #array   (vip_id)   values('+@tem_vip+')'  
                        exec(@sql)  
                end  
        fetch   next   from   @mycursor   into   @tem_vip,@tem_role  
        end  
        close     @mycursor  
        deallocate   @mycursor  
         
  end  
  GO  






=======================
递归的基本概念非常简单:一段给定的代码对自身进行调用,直到某些边界条件得到满足。在本文中,我们将演示如何在T-SQL中使用递归。
  
  在我的眼中,递归是最为精致的程序结构之一。我已经在许多场合用不同的编程语言实现过它。递归的基本概念非常简单:一段给定的代码对自身进行调用,直到某些边界条件得到满足。我将通过下面的内容展示如何在T-SQL中使用递归。我所用到的是递归的经典例子:阶乘计算。
  
  阶乘的意思就是将小于等于这一数字的所有数字相乘,直至乘到2。例如,factorial(10)即等于10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2(你也可以加上“*1”,但似乎是多此一举)。
  
  以下代码即实现了阶乘:
  
  CREATE PROCEDURE [dbo].[Factorial_ap]
  
  (
  
  @Number Integer,
  
  @RetVal Integer OUTPUT
  
  )
  
  AS
  
  DECLARE @In Integer
  
  DECLARE @Out Integer
  
  IF @Number != 1
  
  BEGIN
  
  SELECT @In = @Number ?C 1
  
  EXEC Factorial_ap @In, @Out OUTPUT
  
  SELECT @RetVal = @Number * @Out
  
  END
  
  ELSE
  
  BEGIN
  
  SELECT @RetVal = 1
  
  END
  
  RETURN
  
  GO
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17563304.html



===========================
递归的基本概念非常简单:一段给定的代码对自身进行调用,直到某些边界条件得到满足。在本文中,我们将演示如何在T-SQL中使用递归。
  
  在我的眼中,递归是最为精致的程序结构之一。我已经在许多场合用不同的编程语言实现过它。递归的基本概念非常简单:一段给定的代码对自身进行调用,直到某些边界条件得到满足。我将通过下面的内容展示如何在T-SQL中使用递归。我所用到的是递归的经典例子:阶乘计算。
  
  阶乘的意思就是将小于等于这一数字的所有数字相乘,直至乘到2。例如,factorial(10)即等于10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2(你也可以加上“*1”,但似乎是多此一举)。
  
  以下代码即实现了阶乘:
  
  CREATE PROCEDURE [dbo].[Factorial_ap]
  
  (
  
  @Number Integer,
  
  @RetVal Integer OUTPUT
  
  )
  
  AS
  
  DECLARE @In Integer
  
  DECLARE @Out Integer
  
  IF @Number != 1
  
  BEGIN
  
  SELECT @In = @Number ?C 1
  
  EXEC Factorial_ap @In, @Out OUTPUT
  
  SELECT @RetVal = @Number * @Out
  
  END
  
  ELSE
  
  BEGIN
  
  SELECT @RetVal = 1
  
  END
  
  RETURN
  
  GO
本贴来自天极网群乐社区--http://q.yesky.com/group/review-17563304.html


 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics