--是不是类似这样的要求标识号      备注        
J776             染色
J778             新制扣
J778              染色
J779             新制扣
J779             染色
J780             刻字
转为:
J776             染色
J778             新制扣,染色
J779             新制扣,染色
J780              刻字
也就是说把标识号一样的合成一条记录,将其备注进行相加,请各位高手帮忙create function getresult(@标识号 varchar(10))
returns varchar(100)
as 
begin
declare @result varchar(100)
set @result=''
select @result=@result+备注 from yourtable where 标识号=@标识号
return @result
end语句:
select distinct 标识号,dbo.getresult(标识号) from yourtable

解决方案 »

  1.   

    create function getstr(@content varchar(20))
    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 distinct 标识号,dbo.getstr(标识号)  from 你的表
      

  2.   

    要不你这样:set nocount on
    declare @YourResultTable  table (id int, value varchar(10))
    insert @YourResultTable  values(1,        'cool')
    insert @YourResultTable  values(1,        'nice')
    insert @YourResultTable  values(1,        'wow')
    insert @YourResultTable  values(2,        'cool')
    insert @YourResultTable  values(2,        'wow')
    insert @YourResultTable  values(4,        'nice')
    insert @YourResultTable  values(6,        'cool')
    insert @YourResultTable  values(6,        'nice')--select * from @YourResultTabledeclare @z varchar(100),@q int
    select   @q = 0declare @ProcessTable table (id int, value varchar(100))
    insert @ProcessTable
     select id, value
     from  @YourResultTable
     order by id, valueupdate  @ProcessTable
     set  @z = value = case @q when id then @z else '' end + value +
    ',' ,  @q = id 
     from  @ProcessTable
    --select * from @ProcessTableselect  id,max(value) from @ProcessTable group by idset nocount off
      

  3.   

    请问 create function 在什么地方写?有没有更好的解决方法?关注!!!!
      

  4.   

    知道了,SQL 2000 上可以写,但我用的是SQL 7。