Бинарная рекурсия дерева, найдите нижнюю точку слева
ID автоматическая нумерация
PID Parent Id
Путь узла id_path
Положение FLG, 0 слева, 1 справа
ALTERPOCEDURE [DBO]. [GET_CLASS]
Скопируйте код следующим образом: @classint,
@returnintoutput
КАК
Выберите@return = isnull ((SELECTTOP1IDFROMCLASSHWHEREPID =@classandflg = 0),-2)
Если@return> -1
Начинать
execget_class@return,@returnoutput-почему вам нужно использовать @return здесь? Если вы хотите получить это значение в конце
конец
еще
Начинать
Выберите@return =@class
конец
ИДТИ
На самом деле, вам нужен только оператор запроса, чтобы найти самый низкий идентификатор
Путь узла содержит 1, а местоположение исходного узла - все слева, выньте самый большой
SELECTTOP1*fromClassAwhereId_pathlike '%1,%' andflg = 0 и (selectflgfromclasswhereid = a.pid) = 0orderbyiddesc