再发一帖..求一存储过程

beckfun 2011-05-14 01:28:16
表中有数据列id和pid,其中pid表示父节点id,现要求的,根据ID帅选出所有父节点也就是


select pid from xxx where id='yyy';
select pid from xxx where id='上一条读出来的id' //依次这样读下去..直到pid=null或者0,
.......

现在我能想到的就是
用程序循环执行SQL但是这样每次打开关闭连接,损耗有点大,所以到sql板块来求助存储过程..不知道能否实现

这一部分已经用函数解决,帖子是http://topic.csdn.net/u/20110513/19/36b54243-4323-4b33-af73-2557782a5a3d.html
也谢谢大家的帮忙,现在还有一个问题,就是

我需要读取这个列表,比如select top 10 id from xxx
然后在根据列表中的id来查找所有父节点,最后返回的是包含所有相关节点的值,结果集最好是没有重复记录出现..
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
--小F-- 2011-05-17
  • 打赏
  • 举报
回复
可以全部读取到DATEGRID里面以后再TOP 10
beckfun 2011-05-17
  • 打赏
  • 举报
回复
beckfun 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 acherat 的回复:]

做列表显示直接把最大的根节点的所有子节点求出来,给它们赋上节点级数,在页面可以用js或者其他页面的处理语言写函数来获取列表的树形显示。
[/Quote]算了等下还是用最笨的方法来做吧..程序循环来执行SQL...
AcHerat 2011-05-14
  • 打赏
  • 举报
回复
做列表显示直接把最大的根节点的所有子节点求出来,给它们赋上节点级数,在页面可以用js或者其他页面的处理语言写函数来获取列表的树形显示。
beckfun 2011-05-14
  • 打赏
  • 举报
回复
呃...怎么沉下去了..........
beckfun 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 acherat 的回复:]

引用 2 楼 beckfun 的回复:
引用 1 楼 maco_wang 的回复:

用distinct过滤重复的就可以了。
得到所有相关节点,在SQL SERVER 2000中,还是需要用函数。

我需要读取这个列表,比如select top 10 id from xxx
然后在根据列表中的id来查找所有父节点,最后返回的是包含所有相关节点的值,结果集最好是没有重复记录出现.. ……
[/Quote]因为我要做列表显示...
AcHerat 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 beckfun 的回复:]
引用 1 楼 maco_wang 的回复:

用distinct过滤重复的就可以了。
得到所有相关节点,在SQL SERVER 2000中,还是需要用函数。

我需要读取这个列表,比如select top 10 id from xxx
然后在根据列表中的id来查找所有父节点,最后返回的是包含所有相关节点的值,结果集最好是没有重复记录出现.. 一步和函数应该怎么结合?!
摸索了一天了.……
[/Quote]

楼主为什么要一下获取10个?

至于真要直接获取这10个可以动态用存储过程来凑一下!
beckfun 2011-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 maco_wang 的回复:]

用distinct过滤重复的就可以了。
得到所有相关节点,在SQL SERVER 2000中,还是需要用函数。
[/Quote]
我需要读取这个列表,比如select top 10 id from xxx
然后在根据列表中的id来查找所有父节点,最后返回的是包含所有相关节点的值,结果集最好是没有重复记录出现.. 一步和函数应该怎么结合?!
摸索了一天了..不得已只来再来求助
叶子 2011-05-14
  • 打赏
  • 举报
回复
用distinct过滤重复的就可以了。
得到所有相关节点,在SQL SERVER 2000中,还是需要用函数。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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