不同的数据库字符串连接有用不同的符号,比如SQLSERVER用 +,Oracle用 ||
早期的达梦版本两种都支持,新版本只支持 ||
因为 + 同时作为连接符和运算符会有歧义,例如下面这个sql:
select '1' + '1' from dual;
结果应该是 2 还是 11 呢?
达梦还可以像mysql一样用 concat函数
select concat('1','1') from dual;
也支持wm_concat,oracle 里面是 wmsys.wm_concat,移植到达梦的时候把 wmsys. 去掉即可
create table test(id int,name varchar(100));
insert into test values(1,'我的');
insert into test values(1,'中国梦');
insert into test values(2,'我的');
insert into test values(2,'中国心');
commit;
select wm_concat(name) from test group by id;
高版本的oracle中已经废弃了wm_concat函数,建议用listagg,达梦也建议用listagg
SELECT LISTAGG(name,'-') within GROUP(order by name) FROM test group by id;