--1.创建一个合并的函数
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str+','+面积 from 表A where 编号=@id
set @str=right(@str,len(@str)-1)
return(@str)
End
go--调用自定义函数得到结果
select distinct 编号,dbo.fmerg(编号) from 表A

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2440/2440306.xml?temp=.6941645
     [交流]行列转换
      

  2.   

    create function getstr(@content int)
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+','+rtrim(面积) from 你的表 where 编号=@content
    set @str=right(@str,len(@str)-1)
    return @str
    end
    go语句:
    select 编号,dbo.getstr(编号) 面积 from 你的表 group by 编号
      

  3.   

    --测试:create table test(编号 int,面积 varchar(10))
    insert test values(1     ,'a')
    insert test values( 1    ,'b')
    insert test values( 2     ,'c')
    insert test values( 2     ,'d')
    insert test values( 3     ,'e')
    gocreate function getstr(@content int)
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+','+rtrim(面积) from test where 编号=@content
    set @str=right(@str,len(@str)-1)
    return @str
    end
    go--语句:
    select 编号,dbo.getstr(编号) 面积 from test group by 编号/*结果:编号          面积                                                                                                                                                                                                                                                               
    ----------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    1           a,b
    2           c,d
    3           e(所影响的行数为 3 行)*/