一個二叉樹的遞歸,找出左邊最下面的一個點
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