你参考一下,大力的两种方法.http://expert.csdn.net/Expert/topic/2479/2479536.xml?temp=.2886011

解决方案 »

  1.   

    select 类别+''+面积 as '类别和面积' from 表名 group by 编号,类别
      

  2.   

    1.先合并select 编号,类别+' '+面积 as '类别和面积' into #aa from 表名 2.处理--大力的create function getstr(@column2 int)
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+rtrim(column1) from 你的表 where column2=@column2
    select @str=right(@str,len(@str)-1) where @str<>''return @str
    end
    goselect 编号,dbo.getstr(类别和面积) 类别和面积 from #aa group by 编号
    drop table #aa
    go
      

  3.   

    假设都是字符型select a.编号, a.类别+a.面积+','+b.类别+b.面积 as 类别和面积 from table a, table b where a.编号 = b.编号 and a.类别<> b.类别 and a.面积<> b.面积不过这样选出来的结果多一组重复的行那位高手帮帮忙吧
      

  4.   

    当然可以,只要把函数改一改:
    create function getstr(@column2 int)
    returns varchar(8000)
    as 
    begin
    declare @str varchar(8000)
    set @str=''
    select @str=@str+','+rtrim(类别)+convert(varchar(10),面积) from 你的表 where column2=@column2
    select @str=right(@str,len(@str)-1) where @str<>''return @str
    select 编号,dbo.getstr(编号) 类别和面积 from 你的表 group by 编号
      

  5.   

    假如这个表存在主键就比较好办了select a.编号, a.类别+a.面积+','+b.类别+b.面积 as 类别和面积 from table a, table b where a.编号 = b.编号 and a.主键 < b.主键试验已通过
      

  6.   

    To: littlepotato(土豆土豆) 
    你只是看到了一个片面的。
    不信你试试:
    create table #aa(no int identity(1,1),id int,type varchar(2),area int)
    insert #aa select 1,'a',50
    union all select 1,'b',100
    union all select 2,'c',20
    union all select 2,'d',30
    union all select 2,'e',100
    select * from #aaselect a.id, a.type+' '+convert(varchar(10),a.area)+','+b.type+' '+convert(varchar(10),b.area) as area from #aa a, #aa b where a.id=b.id and a.no < b.no
      

  7.   

    To:wzh1215(四脚蛇)大哥说的没错,我考虑的是每个编号在此表中只存在两条记录的情况如果是超过两条记录的话,整个语句都得改,恐怕不是一条语句能做到的
    不知道楼主的表里面有没有超过两条记录的编号
      

  8.   

    To: littlepotato(土豆土豆) 
    别抱着巧幸的心理去做题,看问题也要全面一点,即使楼主的表中都只有两条记录的编号,那又怎么样呢,来这是学习的,向星星们多学习学习。