小春BOOK

导航

合并列值

示例数据

DECLARE @t TABLE(id int, value varchar(10))

INSERT @t SELECT 1, 'aa'
UNION ALL SELECT 1, 'bb'
UNION ALL SELECT 2, 'aaa'
UNION ALL SELECT 2, 'bbb'
UNION ALL SELECT 2, 'ccc'


--SQL2005   
查询处理
SELECT * FROM( SELECT DISTINCT id FROM @t )A

OUTER APPLY( SELECT [values]= STUFF(REPLACE(

REPLACE( ( SELECT value FROM @t N WHERE id = A.id FOR XML AUTO ), '<N value="', ','),

 '"/>', ''), 1, 1, '') )N


 

--查询处理写一个聚合函数:
create function dbo.f_str(@id int)
returns varchar(8000)
as
begin
   declare @r varchar(8000)
   set @r=''
   select @r=@r+','+value from table where id=@id
   return stuff(@r,1,1,'')
end
go

-- 
调用函数
select id, values=dbo.f_str(id) from table group by id

posted on 2007-02-03 12:15  xiaoc.li  阅读(174)  评论(0)    收藏  举报