У меня есть курсор или два, потому что я не могу понять, как это сделать любым другим способом.
Проблема в том, что parentid
может иметь значение null в базе данных. Поэтому я тестирую, если @parentid is not null
, то если это я, то я запускаю один курсор where parentid = @parentid
, а затем у меня есть другой, где parent id равен null. (ниже)Курсор с нулевым значением или значением
declare findParent_c cursor for
select ID , page
from dPageHierarchy
where profileid = @profileId
and parentid is null;
open findParent_c;
fetch findParent_c into @FindParentId, @ElementCheck;
while @@FETCH_STATUS = 0
begin
-- Do stuff here.
fetch findParent_c into @FindParentId, @ElementCheck;
end
close findParent_c;
deallocate findParent_c;
У кого-нибудь есть способ обойти это? Мне не нравится удваивать код в скрипте.
Вы пытались использовать оператор CASE в своем запросе? – Brendan
Как бы вы могли добавить случай в предложение while для обработки положительного нуля? – DaImTo
Редактировать, если мой родитель и профилид были замешаны в описании. – DaImTo