初学Sybase,遇到一个递归查询的问题,求解!请各位大侠帮帮忙哦!

sexylegs 2013-05-09 09:29:22
Sybase数据库中如何实现以下业务需求啊?也就是递归查询。但在Sybase中貌似没有内置的递归函数,应该只能用存储过程来实现吧。
小弟不才,请问这种Sybase递归查询的存储过程怎么写啊?

T_ORG_INFO(机构表):
id orgCode(机构号) orgName(机构名称) pid(父ID)
1 00001 机构1(根机构) null
2 00002 机构2 1
3 00003 机构3 1
4 00004 机构4 2
5 00005 机构5 4
6 00006 机构6 4

需求:
如果查询的是机构号‘00002’的数据,则需要实现两种可能性的数据查询(可以分别写两个SQL或存储过程的语句):
1、需要查询出它以及它的所有下级机构信息(注:如果当前查询的机构号是‘叶子机构’(如:00005和00006)则没有下级机构,默认查询当前查询的机构信息即可)
2、需要查询出它以及它的所有上级机构信息(注:如果当前查询的机构号是‘根机构’(如:00001)则没有上级机构,默认查询当前查询的机构信息即可)

如上条件(00002)所述,查询出来的数据应该是:
1、本机构以及所有下级机构:‘00002’、‘00004’、‘00005’和‘00006’的信息。
2、本机构以及所有上级机构:‘00002’和‘00001’的信息。

请各位DX给个存储过程出来啊!最好能有注释哦,拜谢啦。
...全文
274 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wumugulu 2014-07-09
  • 打赏
  • 举报
回复
过程代码就算了,给你一段sql作为思路吧 select a.id, a.name, b.id pid from tab1 a, tab1 b where a.pid = b.id
sexylegs 2013-05-09
  • 打赏
  • 举报
回复
自己顶一个,发上来的字段错位了,哎。。。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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