ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 递归打印数字

递归打印数字

原创 Linux操作系统 作者:keeking 时间:2012-06-20 22:26:39 0 删除 编辑
USE [Test]
GO
/****** Object:  StoredProcedure [dbo].[sp_test]    Script. Date: 06/20/2012 22:23:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[sp_test]
@level int    
AS
declare @i int
declare @j int
IF (@level <= 0)
  BEGIN
    PRINT 'Illegal Parameter Value. Must be 0 through 31'
      RETURN - 1
  END
IF (@level = 1)
  BEGIN
    PRINT 1
  END
ELSE
  BEGIN
    
    SELECT @j = @level - 1
    -- recursively call itself
    EXEC sp_test @j  
    
    SET @i = 1
    WHILE (@i <= @level)
        BEGIN
            PRINT @level
            SET @i = @i + 1
        END
   END
  
  
 --EXEC sp_test 3   

----------------------------------------------------------------------------------------
WITH RPL ( NAME, M , S ) AS       
(       
    SELECT 'PID', 10 , 1 
    UNION ALL      
    SELECT RPL.NAME , RPL.M, RPL.S + 1 FROM RPL
        WHERE  RPL.S  < RPL.M
)
SELECT NAME, M , S
FROM RPL

ORDER BY NAME, M , S

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7899089/viewspace-733518/,如需转载,请注明出处,否则将追究法律责任。

下一篇: finacial knowledge
请登录后发表评论 登录
全部评论

注册时间:2009-07-23

  • 博文量
    194
  • 访问量
    239182