在11gr2中,Oracle终于实现了这个分析函数
select name,
listagg(name, ',') within group (order by id) over(partition by type) s_name
from t
where type in ('DIRECTORY', 'JAVA SOURCE', 'SCHEDULE');
NAME S_NAME
------------------------- -----------------------------------------------------------
ORACLE_OCM_CONFIG_DIR ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
DATA_PUMP_DIR ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
XMLDIR ORACLE_OCM_CONFIG_DIR,DATA_PUMP_DIR,XMLDIR
dbFWTrace dbFWTrace,schedFileWatcherJava
已选择8行。
上面是这个函数的3种用法,分别是不带GROUP BY的聚集函数,包含GROUP BY的聚集函数,和分析函数。
和自定义聚集函数相比,这个新增分析函数的最大功能是实现了排序的功能。
当然这个函数返回的是VARCHAR2类型,也就是仍然没有解决返回字符串超长的问题:
本文介绍了Oracle 11gr2中新增的分析函数,重点在于实现排序功能,并提供了三种使用场景示例,包括不带GROUP BY的聚集函数、包含GROUP BY的聚集函数和分析函数。同时指出了该函数返回VARCHAR2类型的局限性。
2043

被折叠的 条评论
为什么被折叠?



