www.rktg.net > orAClE如何删除listAgg中重复值

orAClE如何删除listAgg中重复值

delete from 表名 where rowid not in( select min(rowid) from 表名 group by listagge)

那你不如列转行之前就筛选一遍,干嘛非要等到列转行之后筛眩 列转行之前,就通过group by ..... having ..... 筛选出有重复记录的,然后再 listagg

select a, wmsys.wm_concat(b) from atest t group by a结果: a 1,2,1 b 1,3,2 select a, wmsys.wm_concat(b) from (select distinct a, b from atest) t group by a结果: a 2,1 b 3,2,1

目前只想到自定义函数 通过循环来实现。。。。 循环 将每个字符写入一个临时表 然后 select distinct col1 from tmp_tb 这个怎么样。。。

没有,可以自己写SQL,或者自定义函数: --自定义函数:SQL> create or replace function f(pstr in varchar2) return varchar2 is 2 v_newstr varchar2(100) := null; 3 i pls_integer := 1; 4 begin 5 for i in 1 .. length(pstr) loop 6 if instr...

用cast就可,但要填适当的类型,示例: select cast(11 as unsigned int) /*整型*/ select cast(11 as decimal(10,2)) /*浮点型*/

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

1. 必须得分组,也就是说group by是必须的。 2. listagg函数的第一个参数是需要进行枚举的字段,也就是ddate;第二个参数是枚举数值之间的分隔符;同时还需要进行排序和分组within group (order by name) !

用wn_concat() 函数 1、把以下图中Name一样的数据合并为一条,而且NO的值要这样显示如 C.1,C.2 2、实现这种效果的操作如下,先把Name的值进行分组(group by),再把NO的值用 wm_concat()函数合并起来(注意:记得要to_char(),要不然数据显示不...

with temp as( select 'China' nation ,'Guangzhou' city from dual union all select 'China' nation ,'Shanghai' city from dual union all select 'China' nation ,'Beijing' city from dual union all select 'USA' nation ,'New York' city...

网站地图

All rights reserved Powered by www.rktg.net

copyright ©right 2010-2021。
www.rktg.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com