比如
KEY VALUE
1 "A"
2 "B"
1 "C"
1 "D"用sql语句查询出来后,能不能直接显示成
KEY VALUE
1 "A,C,D"
2 "B"我在其他地方看到可以直接写个函数来调用,但不直到可否直接sql语句实现同样的功能
create function [dbo].[f_str](@id int) returns nvarchar(1000)
as
begin
declare @str nvarchar(1000)
set @str = ''
select @str = @str + ',' + cast(value as nvarchar(900)) from tb where id = @id
set @str = right(@str , len(@str) - 1)
return @str
end
go
--调用函数
select id , value = dbo.f_str(id) from tb group by id
KEY VALUE
1 "A"
2 "B"
1 "C"
1 "D"用sql语句查询出来后,能不能直接显示成
KEY VALUE
1 "A,C,D"
2 "B"我在其他地方看到可以直接写个函数来调用,但不直到可否直接sql语句实现同样的功能
create function [dbo].[f_str](@id int) returns nvarchar(1000)
as
begin
declare @str nvarchar(1000)
set @str = ''
select @str = @str + ',' + cast(value as nvarchar(900)) from tb where id = @id
set @str = right(@str , len(@str) - 1)
return @str
end
go
--调用函数
select id , value = dbo.f_str(id) from tb group by id
http://blog.csdn.net/yy_mm_dd/article/details/3182953
http://bbs.csdn.net/topics/390539853
KEY INT,
VALUE VARCHAR(20)
);insert into tt values(1,'A');
insert into tt values(2,'B');
insert into tt values(1,'C');
insert into tt values(1,'D');
COMMIT;SELECT tt.key, WMSYS.WM_CONCAT(tt.VALUE) VALUE From tt GROUP BY tt.key;