`
sogotobj
  • 浏览: 619037 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多

树型数据结构(比如:一个信息系统中对单位部门的描述)在关系数据库系统中的实现算法(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 wheredpcode not in

(select distinct dpcode_p from department )

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics