SQL Server 2005中的递归实现

SELECT   *   INTO  t  -- 载入测试数据
FROM
(
    
SELECT   1   AS  ID, ' food '   AS  Product, 0   AS  ParentID  UNION   ALL
    
SELECT   2 , ' sport ' , 0   UNION   ALL
    
SELECT   3 , ' drink ' , 1   UNION   ALL
    
SELECT   4 , ' ball ' , 2   UNION   ALL
    
SELECT   5 , ' fruit ' , 1   UNION   ALL
    
SELECT   6 , ' apple ' , 5   UNION   ALL
    
SELECT   7 , ' banana ' , 5   UNION   ALL
    
SELECT   8 , ' football ' , 4   UNION   ALL
    
SELECT   9 , ' basketball ' , 4   UNION   ALL
    
SELECT   10 , ' peisi ' , 3   UNION   ALL
    
SELECT   11 , ' wohaha ' , 3
AS  a
GO
WITH  ShowTree(ID,Product,ORDERBY)  AS
(
    
SELECT  ID,Product,ID  FROM  t  WHERE  ParentID = 0   -- 固定成员
    
    
UNION   ALL
    
SELECT  t.ID,t.Product,ORDERBY * 100 + t.ID  FROM  ShowTree  AS  s
    
INNER   JOIN  t  ON  s.ID  =  t.ParentID
)
SELECT   *   FROM  ShowTree  ORDER   BY   CAST (ORDERBY  AS   VARCHAR ( 50 )) -- OPTION(MAXRECURSION 1)

DROP   TABLE  t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值