SELECT  courseType.type_id,type_name,class_name, 0  AS step   INTO #temp  FROM class
LEFT JOIN courseType ON courseType.type_id = class.type_id 
 ORDER BY courseType. type_id
  DECLARE @class1 TABLE( type_id int , type_name varchar(50),class_name varchar(500),step int)
  INSERT @class1 SELECT type_id,type_name,class_name, step FROM #temp ORDER BY type_name
  UPDATE @class1 SET  @C= class_name = CASE @T   WHEN type_name THEN  @C ELSE '' END +class_name+'/',
                                          @T =type_name,
  @type_id=type_id,
  @step = step =@step+1
                   FROM @class1
 SELECT type_id, type_name, class_name  FROM @class1  c
JOIN (SELECT MAX(step) AS maxstep FROM @class1 GROUP BY type_name ) t
ON step=maxstep
稍作改作

解决方案 »

  1.   

    create function getstr1(@content varchar(5))
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+','+rtrim(field2) from tableA
    where a=@content
    set @str=right(@str,len(@str)-1)
    return @str
    end
    gocreate function getstr2(@content varchar(5))
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+','+rtrim(field3) from tableA
    where a=@content
    set @str=right(@str,len(@str)-1)
    return @str
    end
    goselect field1,dbo.getstr1(field1) field2,dbo.getstr2(field1) field3  from table1 group by a,c
      

  2.   

    USE tempdb
    DECLARE @STRING VARCHAR(50)
    DECLARE test_cursor CURSOR FOR
    SELECT * FROM TEST WHERE [NAME]='A' ORDER BY [ID] ASC
    OPEN test_cursorDECLARE @COUNT INT
    SET @COUNT=0
    SET @STRING=''
    WHILE (SELECT COUNT(*) FROM TEST WHERE [NAME]='A')>@COUNT
    BEGIN
    FETCH NEXT FROM test_cursor
    SET @COUNT=@COUNT+1
    Select @STRING=LTRIM(@STRING+STR(ID)) from TEST END
    CLOSE test_cursor
    DEALLOCATE test_cursorSELECT @STRING
      

  3.   

    不好意思,上面忘了加'\'了
    更正:SELECT @STRING=LTRIM(@STRING+STR([ID])+'\') FROM TEST
      

  4.   

    但是发现一问题:@STRING 必须要定义的很大,上面的50根本容纳不下到7,要定义70以上才差不多,又没有什么好的办法解决这一问题。
    上面的结果是1/   2/   3/   4/   5/   6/  7/
    我尝试了用rtrim但还是不好使。关注。
      

  5.   

    wacle(落第秀才) lds88(lds88) pengweihua(pwh) 谢谢了,大家答的都好,看看还有没有人关注,中午结帐
      

  6.   

    我是新手,对参数对象不了解,哪位高手能注释一下我真的会感激死的,分数no problem