三种方法实现表字段合并

原数据列表

三种方法实现表字段合并_第1张图片

方法一:wm_concat()简介

介绍:其函数在Oracle 10g推出,在10g版本中,返回字符串类型,在11g版本中返回clob类型。

括号里面的参数是列,而且可以是多个列的集合,也就是说在括号里面可以自由地用‘||’合并字符串

用法1: Select aaa, wmsys.wm_concat(bbb || '(' || ccc || ')' ) from table group by aaa

用法2: Select aaa, wmsys.wm_concat(bbb || '(' || ccc || ')' ) over(partition by aaa) from table 

例子:

select wm_concat(''''||COMPANYID||'''') from O2O.O2O_DrugCompany where APPLICATIONTYPE=2 and STATUS=1 group by ISRECOMMEND

三种方法实现表字段合并_第2张图片

三种方法实现表字段合并_第3张图片

方法二LISTAGG() 简介

介绍:其函数在Oracle 11g 版本中推出,对分组后的数据按照一定的排序进行字符串连接。

其中,“[,]”表示字符串连接的分隔符,如果选择使用[over (partition by )]则会使其变成分析函数;

用法1: SELECT aaa, listagg(bbb,',') within GROUP (ORDER BY aaa) FROM table  GROUP BY aaa

用法2: SELECT aaa, listagg(bbb,',') within GROUP (ORDER BY aaa) over(partition by aaa) FROM table

例子:

select listagg('''COMPANYID''',',') within group(order by ISRECOMMEND) from O2O.O2O_DrugCompany where APPLICATIONTYPE=2 and STATUS=1 group by ISRECOMMEND

三种方法实现表字段合并_第4张图片

三种方法实现表字段合并_第5张图片

方法三:wm_concat()与concat() 函数结合,无视分组数据,全部合并

JavaScript concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

例子:

Select wm_concat(concat('''',concat(COMPANYID,''''))) from O2O.O2O_DrugCompany where ISRECOMMEND=1 and APPLICATIONTYPE=2 and STATUS=1

你可能感兴趣的:(数据库)