列位!请问一下。如何按以下的方式选择一个数据库的栏目列表?请看内文!

feethink 2010-04-19 11:18:05
一个表中存放网站栏目.支持无限级分类.即条数据有个parentId字段.用于表示父亲栏目.

id parentId name

1 0 测试一
2 1 测试一的子栏目
3 0 测试二
4 1 测试一的子栏目二

如何在执行Sql后.像下边这样?

1 0 测试一
2 1 测试一的子栏目
4 1 测试一的子栏目二
3 0 测试二
我现在都是先用一条sql取出父栏目.然后再用一条sql取出子栏目.有无可行办法.一条搞定?
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
feethink 2010-04-20
  • 打赏
  • 举报
回复
二楼的在哪copy的?我没看明白啊.
sxiaohui8709253 2010-04-20
  • 打赏
  • 举报
回复
Create function [dbo].[GetChild](@ID varchar(10))
returns @t table(ID varchar(10),ParentID varchar(10),Level int)
as
begin
declare @i int
set @i = 1
insert into @t select @ID,@ID,0 --当前级,本级,如果不要的话可以注释掉或再加个参数来选择操作
insert into @t select ID,ParentID,@i from Dept where ParentID = @ID

while @@rowcount<>0
begin
set @i = @i + 1
insert into @t
select
a.ID,a.ParentID,@i
from
Dept a,@t b
where
a.ParentID=b.ID and b.Level = @i-1
end
return
end
feethink 2010-04-19
  • 打赏
  • 举报
回复
晕.把空格过滤了.

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧