Sybase IQ存储过程如何实现字符串拼接

cplovejavaee 2011-04-13 05:53:19
表中数据:
ID UID
1 6000
1 7000
1 4000
2 6000
3 7000
3 5000
结果为
ID UID
1 6000,7000,4000
2 6000
3 7000,5000
...全文
513 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing56788765 2011-10-18
  • 打赏
  • 举报
回复
为什么我的只拼接了两行呢?
cplovejavaee 2011-04-14
  • 打赏
  • 举报
回复
...抱歉,我学Java的 ,Class被我当成关键字了..
谢谢了 解决了
wwwwb 2011-04-14
  • 打赏
  • 举报
回复
name 、Class表中的字段名,
cplovejavaee 2011-04-14
  • 打赏
  • 举报
回复
虽然结贴了,顺便问下Class 是什么
wwwwb 2011-04-14
  • 打赏
  • 举报
回复
要用游标 or 变量累计
变量累计:示例,自行修改
ALTER PROCEDURE "zz"."blljtest"( )
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
cplovejavaee 2011-04-14
  • 打赏
  • 举报
回复
我试过了,没有List的
wwwwb 2011-04-14
  • 打赏
  • 举报
回复
直接用SQL语句,在ASA11、12中有LIST
你试试SYBASE IQ是否支持LIST函数
select id, list(uid) from tt group by id
cplovejavaee 2011-04-14
  • 打赏
  • 举报
回复
能详细点不,我没做过数据库,
刚来个新公司让我写存储过程,不太会
iihero 2011-04-13
  • 打赏
  • 举报
回复
(dba)> select id, list(uid) from testcc group by id order by id;
id list(testcc.uid)


----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 6000,7000,4000


2 6000


3 7000,5000



(3 rows)

2,598

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧