表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
自行修改