create function getstr(@父图号 int)
returns varchar(2000)
as 
begin
declare @str varchar(2000)
set @str=''
select @str=@str+','+rtrim(子图号) from 你的表 where 父图号=@父图号
select @str=right(@str,len(@str)-1) where @str<>''
return @str
end
go--调用:
select 父图号,dbo.getstr(父图号) 子图号  from 你的表 group by 父图号

解决方案 »

  1.   

    如果你的表中每个父图号对应的子图号只有两个,可以用下面的视图create view aa as
    select 父图号,min(子图号)+','+max(子图号) as 子图号
    from 你的表 group by 父图号
      

  2.   

    如果你的表中每个父图号对应的子图号只有两个,可以用下面的视图create view aa as
    select 父图号,min(子图号)+','+max(子图号) as 子图号
    from 你的表 group by 父图号
      

  3.   

    否则就自定义一个函数来处理:--自定义函数
    create function fmerg(@父图号 varvhar(50))
    returns varchar(8000)
    as
    begin 
    declare @re varchar(8000)
    set @re=''
    select @re=@re+','+子图号 from 你的表 where 父图号=@父图号
    set @re=substring(@re,2,8000)
    return(@re)
    go--调用此函数来查询
    select 父图号,dbo.fmerg(父图号) from(select distinct 父图号 from 你的表) a
      

  4.   

    哦,原来是自定义函数啊,是sql server 2000新增的功能。就是“用户定义的函数”
      

  5.   

    sql 2000才支持.在自定义函数中,或在查询分析器中执行上面的语句.
      

  6.   

    1,建自定义函数
    Create function getstr(@id Nchar(100))
    returns Nvarchar(4000)
    as 
    begin
    declare @str Nvarchar(4000),@分隔符 Nvarchar(10)
    set @分隔符=N','
    set @str=N''
    select @str=@str+rtrim(Col)+@分隔符 from 表名
    --------------------------------^^^^要相加的字段名
    where 相加条件字段=@id
    set @str=left(@str,len(@str)-1)落 ---却除最后一个分隔符
    return @str
    end
    GO2,调用
    select 条件字段,dbo.getstr(条件字段) from 表名 group by 条件字段
      

  7.   

    A            B,C
    A1           B,C得到的怎么是这个结果?????
      

  8.   

    CREATE TABLE [aa] (
    [unit] [int] NOT NULL ,
    [name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL 
    ) ON [PRIMARY]
    GO
    create function getstr(@unit int)
    returns varchar(2000)
    as 
    begin
    declare @str varchar(2000)
    set @str=''
    select @str=@str+','+rtrim(name) from aa where unit=@unit
    select @str=right(@str,len(@str)-1) where @str<>''
    return @str
    end
    go--调用:
    select unit,dbo.getstr(unit) name  from aa group by unit前两个人说的完全正确,可能是你自己那里写错了。要不你就把上面这段语句在查询分析器中执行一下。