一個二叉樹的遞歸,找出左邊最下面的一個點
id自動編號
pid父ID
id_path節點路徑
flg位置,0左邊,1右邊
ALTERPROCEDURE[dbo].[get_class]
複製代碼代碼如下:@classint,
@returnintoutput
AS
SELECT@return=isnull((selecttop1idfromclasswherepid=@classandflg=0),-2)
if@return>-1
begin
execget_class@return,@returnoutput--這里為什麼要用@return,你要最後得到這個值,必須把它傳進去
end
else
begin
SELECT@return=@class
end
GO
其實只需一個查詢語句就能找出最下面的ID
節點路徑包函1,並且父節點位置都是左邊,取出最大一個
selecttop1*fromclassawhereid_pathlike'%1,%'andflg=0and(selectflgfromclasswhereid=a.pid)=0orderbyiddesc