fyqt.net
当前位置:首页 >> orAClE 11g wm ConCAt >>

orAClE 11g wm ConCAt

方法一,使用connect by +sys_connect_by_path : --测试数据 create table test(col varchar2(10)); insert into test values('a'); insert into test values('b'); insert into test values('c'); --SQL语句: select ltrim(sys_connect_by_path(...

所有版本的oracle都可以使用select wm_concat(name) as name from user; 但如果是oracle11g,使用select listagg(name, ',') within group( order by name) as name from user; 效率更高,官方也更推荐这种写法。

建库时的个选项需要安装,如果没有安装就没有这个函数,也可以不用安装,自己构建一个这样的函数,网上搜索一下 http://zjm16.iteye.com/blog/899941 这个可以用,我试过

insert into test values('aaa','1');insert into test values('bbb','2');insert into test values('ccc','5');insert into test values('ddd','3');select wm_concat(a),wm_concat(b) from test; WM_CONCAT(A) WM_CONCAT(B)1 aaa,bbb,ccc,ddd ...

sys.wm_concat是oracle10g才有的函数,之前就没有。 而且这个一直是用逗号做分隔符的, 你说的情况,可能是: 用wm_concat后再用replace进行替换了,将 逗号 替换成 冒号了, 这也是一般的方法。 自己改写了wm_concat的函数,网上有这个函数的原...

SELECT RTRIM(XMLAGG(XMLPARSE(CONTENT 字段a || ',' WELLFORMED)) .GETCLOBVAL(), ',')FROM 表;

那可以不用concat,可以采用||的方式。 比如有A列和B列,要在A列和B列连接的同时在中间加一个空格,可用如下语句: select A||' '||B from 表名concat在oracle中只可以连接两个字符,如果非要用concat的话,可以采用这种方式: select concat(co...

SELECT x.rc_id,wmsys.wm_concat(x.project_name) as project_name FROM( SELECT distinct t.rc_id, t.project_name FROM required_collect_detail t where t.rc_id=rc_id ) x group by x.rc_id

wm_concat 的求和中对数据项的排序方式比较复杂,取数据是楼主你这种方式,其实只差最后一步了。 select max(a.var) var from (select wm_concat(t.id) over(order by to_number(t.id)) var from student t) a

select wm_concat(a.NAME) from( select a.id as aid,a.NAME from A a,B b start with a.ID=b.ID connect by prior a.PID=a.ID order by a.id asc ) a 试试这个。

网站首页 | 网站地图
All rights reserved Powered by www.fyqt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com