首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Sybase >

怎么将查询结果集中的某列值(字符串)合并

2012-03-04 
如何将查询结果集中的某列值(字符串)合并?表a, 结构如下:idname1北京2上海3广州如何用sql(不用存储过程)实

如何将查询结果集中的某列值(字符串)合并?
表a, 结构如下: 
  id name 
  1 北京 
  2 上海 
  3 广州 
如何用sql(不用存储过程)实现返回一个字符串变量,格式是'北京|上海|广州' ?

[解决办法]
没有办法,SYBASE本身没有这个函数,你只能自己写存储函数来实现了。
[解决办法]
asa11:
ALTER PROCEDURE "zz"."blljtest"( /* [IN | OUT | INOUT] 参数名称 参数类型 [DEFAULT 缺省值], ... */ )
/* RESULT( 列名 列类型, ... ) */
BEGIN
declare @ee varchar(500);
declare @ee1 varchar(500);
declare @num int;
set @ee='';
set @ee1='';
set @num=1;
select *,space(500) as gd,0000 as gdnum into #tt from blljtest;
update #tt set gd=(case when @ee1=class then @ee || ',' || name else name end) ,
@ee=(case when @ee1=class then @ee || ',' || name else name end),
gdnum=(case when @ee1=class then @num+1 else 1 end),
@num=(case when @ee1=class then @num+1 else 1 end),@ee1=class;
select a.* from #tt a inner join 
(select class,max(gdnum) as ma from #tt group by class) b 
on a.class=b.class and a.gdnum=ma;
end

自行修改

热点排行