lijialong

基于SQLServer!

首先先建一个测试表,演示下效果.

create table textDB
(
    id int, 
    value varchar(10)
) 
insert into textDB values(1, \'aa\') 
insert into textDB values(1, \'bb\') 
insert into textDB values(2, \'aaa\') 
insert into textDB values(2, \'bbb\') 
insert into textDB values(2, \'ccc\') 

然后

select * from textDB

结果看此图:

image

而需要的效果是:

image

还是不明白我要做什么,那就使劲看图~

需要使用的一个function:

create function [dbo].[f_function](@id int) returns nvarchar(1000)
as
begin
declare @str nvarchar(1000);
set @str = \'\';
select @str = @str + \',\' + cast(value as nvarchar(900)) from textDB where id = @id;
set @str = right(@str , len(@str) - 1);
return @str;
end

然后运行下面的select语句:

select id , value = dbo.f_function(id) from textDB group by id

即可。

分类:

技术点:

相关文章: