数据库中有部门表如下,怎么实现得到某部门及其下属所有的部门?
谢谢!
BH  NAME  UP
01  00001  0000000
02  0002   01
03  0003   01
04  0004   03

解决方案 »

  1.   

    不知道这样是否是你想要的结果
    select *
      from 部门表
     where BH = 某部门编号
        or UP = 某部门编号
      

  2.   

    ORACLE数据库中可以通过下面语句实现,执行语句后,可以得出部门01及其下属所有的部门SELECT *
      FROM 部门表
     START WITH BH = '01'
    CONNECT BY PRIOR BH = UP
      

  3.   

    纠正刚才的错误,试试看
    select A.bh, A.bm, A.up 
      from 部门表 A
     where A.BH = '001'
        or A.UP in (select B.BH from 部门表 B where B.BH = A.UP)
      

  4.   

    To qybao(阿宝) :
    你最后写的SQL还是有问题的。
    To jwt1982 (飞星) : 我的脚本已经可以满足你的需求了。
      

  5.   

    可以写一个自定义函数,比如IsChild(BH1,BH2) ,判断BH1是否等于BH2或者是BH2的下属机构。是的话返回1,否的话返回2
    然后用 
    select * from tableA where IsChild(BH,'01')=1
      

  6.   

    今天上班了,呵呵不过很不幸,我是MSSQL数据库!
    erik(狮子) 
    你的语句sql里根本没有!