请问上边图中的树型列表 如何递归 形成自己的名字格式?
格式如下:
10023 桥隧涵-桥梁-桥面铺装
10024 桥隧涵-桥梁-排水系统
10025 桥隧涵-桥梁-附属设施
10026 桥隧涵-桥梁-伸缩缝
10027 桥隧涵-桥梁-翼墙锥坡
10028 桥隧涵-桥梁-墩台
10029 桥隧涵-桥梁-台帽盖梁
10030 桥隧涵-桥梁-梁式构件
10031 桥隧涵-桥梁-桥与路连接我只想得到最底层的数据,名字显示方法 如格式中的那样~!会的朋友来看看吧~!

解决方案 »

  1.   

    此图片来自QQ空间未经允许,不得引用
    楼主登出QQ跟QQ空间再试试
      

  2.   

    多条一次性弄出来 QQ空间 http://user.qzone.qq.com/263306005
      

  3.   

    QQ空间 http://user.qzone.qq.com/263306005  图在  提问图片 相册中
      

  4.   

    给你发个类似的例子:
    --测试数据
    CREATE TABLE tb(ID INT,PID int,Name nvarchar(10))
    INSERT tb SELECT 1,0,N'部门1'
    UNION ALL SELECT 2,0,N'部门2'
    UNION ALL SELECT 3,1,N'部门1.1'
    UNION ALL SELECT 4,3,N'部门1.1.1'
    UNION ALL SELECT 5,4,N'部门1.1.1.1'
    UNION ALL SELECT 6,2,N'部门2.1'
    UNION ALL SELECT 7,6,N'部门2.1.1'
    UNION ALL SELECT 8,7,N'部门2.1.1.1'
    GO--查询指定节点及其所有子节点的函数
    CREATE FUNCTION f_Cid(@ID VARCHAR(10))
    RETURNS @t_Level TABLE(ID INT,Level int)
    AS
    BEGIN
    DECLARE @Level int
    DECLARE @PID INT

    SELECT @ID = @ID + ',' , @Level=1
    WHILE CHARINDEX(',',@ID)>0
    BEGIN
      SET @PID = CAST(LEFT(@ID,CHARINDEX(',',@ID)-1) AS INT) INSERT @t_Level SELECT @PID,@Level
    WHILE @@ROWCOUNT>0
    BEGIN
    SET @Level=@Level+1
    INSERT @t_Level SELECT a.ID,@Level
    FROM tb a,@t_Level b
    WHERE a.PID=b.ID
    AND b.Level=@Level-1
    END
    SET @ID = STUFF(@ID,1,CHARINDEX(',',@ID),'')
    END
    RETURN
    END
    GO--调用函数查询节点[ 1 ]及其所有子节点
    SELECT a.*
    FROM tb a,f_Cid('1,2') b
    WHERE a.ID=b.ID
    /*--结果
    ID          PID         Name       
    ----------- ----------- ---------- 
    1           0           部门1
    2           0           部门2
    3           1           部门1.1
    4           3           部门1.1.1
    5           4           部门1.1.1.1
    6           2           部门2.1
    7           6           部门2.1.1
    8           7           部门2.1.1.1(8 row(s) affected)
    --*/
    DROP FUNCTION F_Cid
    DROP TABLE TB