本问题,其实就是字符相加的问题,很奇怪有数字相加有sum.字符相加呢?

解决方案 »

  1.   

    建立一个函数
    Create   FUNCTION GETName(@class NVARCHAR(20))
    RETURNS NVARCHAR(200)
    AS
    BEGIN
      DECLARE @str NVARCHAR(200)
      
      SET @str=''  SELECT @str = @str+name+',' 
      FROM 表 WHERE class =@class  SET @str = LEFT(@str,LEN(@str)-1)
      RETURN @str
    END
    调用
      select class,getname(class) from 表 group by class
      

  2.   

    Create FUNCTION GETName(@class int)
    RETURNS VARCHAR(8000)
    AS
    BEGIN
      DECLARE @str VARCHAR(8000)
      
      SET @str=''  SELECT @str=@str+name+','  FROM 表 WHERE class=@class  SET @str = LEFT(@str,LEN(@str)-1)
      RETURN @str
    END
    调用
      select class,getname(class) name from 表 group by class
      

  3.   

    Create FUNCTION GETName(@class int)
    RETURNS VARCHAR(8000)
    AS
    BEGIN
      DECLARE @str VARCHAR(8000)
      SET @str=''
      SELECT @str=@str+cast(name as varchar(10))+',' FROM 表 WHERE class=@class
      SET @str = LEFT(@str,LEN(@str)-1)
      RETURN @str
    END调用
      select class,dbo.getname(class) name from 表 group by class
      

  4.   

    呵呵SELECT @str=@str+name+','  FROM 表 WHERE class=@class
      

  5.   

    建立一个函数
    Create   FUNCTION GETName(@class NVARCHAR(20))
    RETURNS NVARCHAR(800)
    AS
    BEGIN
      DECLARE @str NVARCHAR(800)
      
      SET @str=''  SELECT @str = @str + ',' + name 
      FROM 表 WHERE class =@class  SET @str = right(@str,LEN(@str)-1)
       
      RETURN @str
    END
    调用
      select class,getname(class) from 表 group by class
      

  6.   

    建立一个函数
    Create   FUNCTION GETName(@class NVARCHAR(20))
    RETURNS NVARCHAR(800)
    AS
    BEGIN
      DECLARE @a NVARCHAR(800)
      Declare @b int
      Declare @c varchar(10)
      SET @a=''
      SELECT @a = @a + name +','
      FROM 表 WHERE class =@classset @b=1
    create table #123 (s1 varchar(10))
    while @b <= Len(@a) begin
      set @c=left(@a,patindex('%,%',@a))
      set @a=stuff(@a,1,len(@c),'')
      Insert into #123 values (@c)
    end
    set @a=''
    select @a=@a + s1 from #123 group by s1 order by s1
    drop table #123
    return @a
    End调用
      select class,dbo.getname(class) from 表 group by class