バイナリツリーの再帰、左側の最下点を見つけます
ID自動番号付け
PID親ID
id_pathノードパス
FLG位置、左0、右
ultrocedure [dbo]。[get_class]
次のようにコードをコピーします:@classint、
@returnintoutput
として
@return = isnull((selecttop1idfromclasswherepid =@classandflg = 0)、-2)
@return> -1の場合
始める
execget_class@return、@returnoutput-ここで@returnを使用する必要があるのはなぜですか?最終的にこの値を取得したい場合は、渡す必要があります
終わり
それ以外
始める
@return =@classを選択します
終わり
行く
実際、最低のIDを見つけるにはクエリステートメントのみが必要です
ノードパスには1が含まれ、親ノードの位置はすべて左側にあり、最大の場所を取り出します
selecttop1*fromclassawhereid_pathlike '%1、%'およびflg = 0and(selectffrgfromclasswhereId = a.pid)= 0ORDERBYIDDESC