表结构:
ID varchar(36),--Guid,ID
DisplayName nvarchar(50),--显示名称,
ParentID varchar(36)  --Guid 上级ID我是在Reporting Services上做一个下拉选框,要查询出所有的记录,以树型的形式显示出来
|下拉列表诓|
一级
  一级子1
    一级子1-1
    一级子1-2
  一级子2
二级
  二级子1
  二级子2请高手帮忙,多谢

解决方案 »

  1.   

    老大书上的示例:--测试数据
    DECLARE @t TABLE(ID char(3),PID char(3),Name nvarchar(10))
    INSERT @t SELECT '001',NULL ,'山东省'
    UNION ALL SELECT '002','001','烟台市'
    UNION ALL SELECT '004','002','招远市'
    UNION ALL SELECT '003','001','青岛市'
    UNION ALL SELECT '005',NULL ,'四会市'
    UNION ALL SELECT '006','005','清远市'
    UNION ALL SELECT '007','006','小分市'--深度排序显示处理
    --生成每个节点的编码累计(相同当单编号法的编码)
    DECLARE @t_Level TABLE(ID char(3),Level int,Sort varchar(8000))
    DECLARE @Level int
    SET @Level=0
    INSERT @t_Level SELECT ID,@Level,ID
    FROM @t
    WHERE PID IS NULL
    WHILE @@ROWCOUNT>0
    BEGIN
    SET @Level=@Level+1
    INSERT @t_Level SELECT a.ID,@Level,b.Sort+a.ID
    FROM @t a,@t_Level b
    WHERE a.PID=b.ID
    AND b.Level=@Level-1
    END--显示结果
    SELECT SPACE(b.Level*2)+'|--'+a.Name
    FROM @t a,@t_Level b
    WHERE a.ID=b.ID
    ORDER BY b.Sort
      

  2.   

    wangdehao(找找找(现在很幸福)) 多谢,我试过了,查询太慢了,5分钟也没查出来
    表里有很多数据的,层次也深
    还有ID和ParentID都是Guid形式的,不知道8000能够长度不
      

  3.   

    w75251455(砍破):是在Reporting Services的页面上的下拉框用的