程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> 關於ASP編程 >> 存儲過程裡的遞歸 實現方法

存儲過程裡的遞歸 實現方法

編輯:關於ASP編程
一個二叉樹的遞歸,找出左邊最下面的一個點 
id 自動編號 
pid 父ID 
id_path 節點路徑 
flg 位置,0左邊,1右邊 
ALTER      PROCEDURE [dbo].[get_class] 

復制代碼 代碼如下:@class int, 
@return int output 
AS 

SELECT  @return=isnull(( select top 1 id  from class where pid=@class and flg=0 ),-2) 

if @return>-1 
    begin 
    exec get_class @return,@return output--這裡為什麼要用@return,你要最後得到這個值,必須把它傳進去 

    end 

else 
    begin 
    SELECT @return=@class 
    end 
GO  
其實只需一個查詢語句就能找出最下面的ID 
節點路徑包函1,並且父節點位置都是左邊,取出最大一個 
select top 1 * from class a where id_path like '%1,%' and flg=0 and (select flg from class where id=a.pid)=0 order by id desc
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved