有这样一个表,有pz,gg,xs三个字段,均为字符型,要求按pz,gg汇总,
 pz       gg        xs 
 b90      20        101
 b90      20        102
汇总后形成
 b90      20        101,102
请问有没有不使用循环而直接汇总形成的语句。
 

解决方案 »

  1.   

    先写个函数
    CREATE   function   f_sum(@pg varchar(50),@zz   varchar(50))   
      returns   varchar(8000)   
      as   
      begin   
          declare   @str   varchar(8000)   
          set   @str   =   ''   
          select   @str   =   @str   +   ', '   +  xs  from   test2   where   pg =   @pg   and   zz=@zz
          set   @str   =   right(@str   ,   len(@str)   -   1)   
          return(@str)   
      End
    然后调用该函数SELECT DISTINCT pg, zz, dbo.f_sum(pg, zz) AS Expr1
    FROM test2