表如下:图书分类表:ID列 类型列 类型名
1 1 计算机
2 1 办公自动化
3 2 物理学
4 2 化学
5 1 网站设计
6 2 数学
我想要的结果如下:类型列 类型名
1 计算机,办公自动化,网站设计
2 物理学,化学,数学各位兄弟帮帮忙。。
1 1 计算机
2 1 办公自动化
3 2 物理学
4 2 化学
5 1 网站设计
6 2 数学
我想要的结果如下:类型列 类型名
1 计算机,办公自动化,网站设计
2 物理学,化学,数学各位兄弟帮帮忙。。
returns varchar(1000)
as
begin
declare @F varchar(1000)
set @F =''
select @F=@F+ 类型名 +',' from A where 类型列=@Flag
return left(@F,len(@F)-1)
endselect 类型列 ,dbo.TT(类型列) from A group by 类型列
(
id int,
类型列 int,
类型名 varchar(20)
)
insert into books
select 1,1,'计算机' union all
select 2,1,'办公自动化' union all
select 3,2,'物理学' union all
select 4,2,'化学' union all
select 5,1,'网站设计' union all
select 6,2,'数学'
go
create function dbo.f_books(@a int)
returns varchar(50)
as
begin
declare @b varchar(50)
set @b=''
select @b=@b+类型名+','
from books
where 类型列=@a
set @b=left(@b,len(@b)-1)
return (@b)
end
go
select 类型列,dbo.f_books(类型列)
from books
group by 类型列/*
类型列
----------- --------------------------------------------------
1 计算机,办公自动化,网站设计
2 物理学,化学,数学*/
(
ID Int,
类型列 Int,
类型名 Nvarchar(20)
)
Insert Into books Select 1,1,N'计算机'
Union All Select 2,1,N'办公自动化'
Union All Select 3,2,N'物理学'
Union All Select 4,2,N'化学'
Union All Select 5,1,N'网站设计'
Union All Select 6,2,N'数学'
GO
Create Function dbo.GetType(@Type Int)
Returns Nvarchar(1000)
As
Begin
Declare @S Nvarchar(1000)
Set @S=''
Select @S=@S+','+类型名 From books Where 类型列=@Type
Return (Stuff(@S,1,1,''))
End
GO
Select
类型列,
dbo.GetType(类型列) As 类型名
From books
Group By 类型列
GO
Drop Table books
Drop Function GetType
--Result
/*
类型列 类型名
1 计算机,办公自动化,网站设计
2 物理学,化学,数学
*/
2.字段合并
3.树型求根^^