有一个问题想请教各位达人

        树型数据结构(比如:一个信息系统中对单位部门的描述)在关系数据库系统中的实现算法(SQL、T-SQL或PL/SQL语言实现)

有一个表主要描述单位部门,且单位部门层次不定即一个单位A有子单位B,C。子单位B、C又有子单位,子单位B、C的子单位又有子单位。。。等等。

表结构如下:

表名:department

字段      数据类型

dpcode    int                     --单位代码

dpname  varchar(100)   --单位名称

dpcode_p  int                  --上一级单位代码

求:1、无子单位的单位数即求树的叶子数。

     2、此表的单位有多少级(层)即求树的层数。

    3、某同一级别(层次)的单位有多少即求树的某一层的结点数。

    4、某一单位属于那一级(层),是否无子单位即求树的某一结点属于那一层,是否是叶子。

解答(ms sql 2000 调试通过):

1、select  count(*)  as 叶子数 from department where  dpcode not in

      (select  distinct dpcode_p from  department )

其它问题的暂时无法解决,望各位达人给个意见(最好少用或者不要用变量和游标,要考虑时空效率)?

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值