Une récursivité arbre binaire, trouvez le point inférieur à gauche
ID Numérotation automatique
ID de parent PID
chemin de nœud id_path
Position de flg, 0 à gauche, 1 à droite
Alterprocedure [dbo]. [Get_class]
Copiez le code comme suit: @classint,
@reTurnIntOutput
COMME
Select @ return = isNull ((selecttop1idfromclasswherepid = @ classandflg = 0), - 2)
Si @ return> -1
Commencer
exected_class @ return, @ returnOutput - Pourquoi avez-vous besoin d'utiliser @return ici? Si vous souhaitez obtenir cette valeur à la fin, vous devez la transmettre
fin
autre
Commencer
SELECT @ return = @ classe
fin
ALLER
En fait, vous n'avez besoin que d'une déclaration de requête pour trouver l'identifiant le plus bas
Le chemin du nœud contient 1 et les emplacements du nœud parent sont tous à gauche, retirez le plus grand
selectTop1 * fromClassAwhereid_pathlike '% 1,%' etflg = 0and (selectFlgFromClasswhered = a.pid) = 0OrderByIdDesc