oracle 列转行函数listagg判断函数decode

Posted 平平无奇杨小兵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 列转行函数listagg判断函数decode相关的知识,希望对你有一定的参考价值。

1、decode

使用decode判断字符串是否一样

DECODE(value,if1,then1,if2,then2,if3,then3,...,else)

decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)

某些场景可以代替case when

 

2、listagg

首先看下数据情况

 想把这个人的阶段列转成一行分隔显示使用listagg函数

select
listagg (decode(sts,\'A\',coll_stage),\',\') within group (order by coll_stage desc) coll_stage_a, listagg (decode(sts,\'I\',coll_stage),\',\') within group (order by coll_stage desc) coll_stage_i, listagg (coll_stage,\',\') within group (order by coll_stage desc) coll_stage_all from lc_contcoll_rel where cont_no = \'HT90201804121600006690493\' group by cont_no

结果:

 

以上是关于oracle 列转行函数listagg判断函数decode的主要内容,如果未能解决你的问题,请参考以下文章

oracle行转列,列转行函数的使用(listagg,xmlagg)

oracle WMSYS.WM_CONCAT 函数转为listagg

oracle 列转行

关于ORACLE列转行的问题

用listagg怎么替代这个写法

oracle listagg的 截取长度限制有没有啥方法解决