有下表:
单位名称 | 收费类别 |
1 | a |
1 | b |
1 | d |
2 | a |
3 | b |
3 | c |
要求查询结果显示如下
单位名称 | 收费类别 |
1 | a,b,d |
2 | a |
3 | b,c |
函数实现
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 单位名称