为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM8.1
【操作系统】:RHEL7
【CPU】:Intel X86
【问题描述】*:
wm_concat()函数是oracle中独有的,mysql中有一个group_concat()函数。这两个函数的作用是相同的,它们的功能是:实现行转列功能,即将查询出的某一列值使用逗号进行隔开拼接,成为一条数据。
请问达梦中有没有类似的函数,如果没有怎么实现这一功能呢?
DM7开始应该支持wm_concat函数
create table t_test11(id int, goods varchar2(10), num int);
insert into t_test11 values (1, ‘苹果’, 2);
insert into t_test11 values (2, ‘梨子’, 5);
insert into t_test11 values (1, ‘西瓜’, 4);
insert into t_test11 values (3, ‘葡萄’, 1);
insert into t_test11 values (3, ‘香蕉’, 1);
insert into t_test11 values (1, ‘橘子’, 3);
commit;
select id, wm_concat(goods) goods_sum from t_test11 group by id;
结果集
1 苹果,西瓜,橘子
2 梨子
3 葡萄,香蕉
select id, wm_concat(goods || ‘(’ || num || ‘斤)’ ) goods_sum from t_test11 group by id;
结果集
1 苹果(2斤),西瓜(4斤),橘子(3斤)
2 梨子(5斤)
3 葡萄(1斤),香蕉(1斤)
with t as (
select mod(level,2) id,‘a’||mod(level,3) name from dual connect by level <= 10
)
select id,wm_concat(name) from t group by id