解决方案 »

  1.   

    create table Table1(orderid int,ordername varchar(20))insert into Table1
    select 1               ,'文章' union all
    select 2               ,'图片' union all
    select 3               ,'文件'create table Table2(id int,     name  varchar(20),      orderid  int)insert into Table2
    select 1     ,'文章1',             1 union all
    select 2     ,'文章2',             1 union all
    select 3     ,'文章3',             2 union all
    select 4     ,'文章4',             2 union all    
    select 5     ,'文章5',             3 union all
    select 6     ,'文章6',             3 
    goselect 
    from Table1 t1
    inne
      

  2.   

    这样吗:
    select ordername
    from 
    (
    select orderid,ordername,orderid-1 ord
    from Table1 t1union allselect orderid,space(ROW_NUMBER() over(PARTITION by orderid order by id)*2)+name,id
    from Table2
    )t
    order by orderid,ord
    /*
    ordername
    文章
      文章1
        文章2
    图片
      文章3
        文章4
    文件
      文章5
        文章6
    */
      

  3.   

    Table1 的name 是父节点
    Table2 的name 是子节点
    Table2的归属按Table1的id
      

  4.   

    Table1 的name 是父节点
    Table2 的name 是子节点
    Table2的归属按Table1的id
    递归?
      

  5.   

    树状结果,应在界面中添加一个TreeView控件来显示.
      

  6.   

    --测试数据
    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
    /*--结果
    |--山东省
      |--烟台市
        |--招远市
      |--青岛市
    |--四会市
      |--清远市
        |--小分市
    --*/
    还需要我写么?
      

  7.   

    你展示的要在前台程序里去弄!看你展示的需要从SQL中获取相关结果集。
      

  8.   

    楼主,你的数据的结构本来就是这样的,不知道你要显示成啥样?是用c#代码实现么?从数据层来看 已经是这样的,你的orderid就已经区分了你的数据所属于的树,id区分树的深度。