请问一个SQL语句的写法,很有难度的
有这样一个表:
(ID 数字型),(name 字符型) ,(class 字符型 分类字段)
1 张三 武汉
2 李四 武汉
3 刘八 武汉
5 周九 成都
6 蔡十 成都
7 何大 北京
8 刘小 北京
语句运行后的结果应是:
武汉 张三、李四、刘八
成都 刘八、周九
北京 何大、刘小
这样的语句应该怎么写呢
drop table t
create table t(id int identity,name varchar(5),class varchar(4))
insert t select '张三','武汉'
union select '李四','武汉'
union select '刘八','武汉'
union select '周九','成都'
union select '蔡十','成都'
union select '何九','北京'
union select '刘小','北京'
drop function fun_t
create function fun_t(@class varchar(10))
returns varchar(2000)
as
begin
declare @a varchar(2000)
set @a=''
select @a=@a+','+cast(name as varchar) from t where class=@class
set @a=right(@a,len(@a)-1)
return @a
end
select distinct class,dbo.fun_t(class) as 连接 from t
[此贴子已经被作者于2007-1-4 15:19:49编辑过]