表如下:图书分类表:自动增长列 超类名 子类名
----- ------- ----------
1 计算机 计算机
2 计算机 办公自动化
3 自然科学 物理学
4 自然科学 化学
5 计算机 网站设计
6 自然科学 数学
我想要的结果如下:超类名 子类名
------ --------
计算机 计算机,办公自动化,网站设计
自然科学 物理学,化学,数学各位兄弟帮帮忙。。
----- ------- ----------
1 计算机 计算机
2 计算机 办公自动化
3 自然科学 物理学
4 自然科学 化学
5 计算机 网站设计
6 自然科学 数学
我想要的结果如下:超类名 子类名
------ --------
计算机 计算机,办公自动化,网站设计
自然科学 物理学,化学,数学各位兄弟帮帮忙。。
(
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,
超类名 varchar(20),
子类名 varchar(20)
)
insert into books
select 1,'计算机','计算机' union all
select 2,'计算机','办公自动化' union all
select 3,'自然科学','物理学' union all
select 4,'自然科学','化学' union all
select 5,'计算机','网站设计' union all
select 6,'自然科学','数学'
go
create function dbo.f_books(@a varchar(20))
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(超类名) as 子类名
from books
group by 超类名/*
超类名 子类名
-------------------- --------------------------------------------------
计算机 计算机,办公自动化,网站设计
自然科学 物理学,化学,数学
*/