当前位置: 代码迷 >> Sybase >> 怎么将查询结果集中的某列值(字符串)合并
  详细解决方案

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

热度:3499   发布时间:2013-02-26 00:00:00.0
如何将查询结果集中的某列值(字符串)合并?
表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

自行修改
  相关解决方案