我有一两个光标,因为我无法弄清楚如何以任何其他方式执行此操作。
问题是parentid
在数据库中可以为null。所以我正在测试@parentid is not null
,如果是,我正在运行一个游标where parentid = @parentid
然后我有另一个父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;
有没有人能解决这个问题?我讨厌在脚本中加倍代码。
答案 0 :(得分:0)
编辑:此游标检查是否设置了@parentid
。如果是,则选择parentid = @parentid
如果不是,则选择parentid is null and profileid = @profileid
。
declare findParent_c cursor for
select ID , page
from dPageHierarchy
where ( profileid = @profileId
and parentid is null
and @parentid is null )
or ( @parentid is not null
and parentid = @parentid );
open findParent_c;
答案 1 :(得分:0)
你在找这个吗?
declare findParent_c cursor for
select ID , page
from dPageHierarchy
where profileid = @profileId
and ( (parentid = @parentid) or (parentid is null and @parentid is null) );