Oracle查询,将某列查询结果用逗号隔开,拼接成一行(listagg函数)

2023-02-12,,,,

需求:Oracle数据库,通过查询,将查询字段的该列结果用逗号拼接成一行。


1. 查询语法

select listagg('字段',',') within group (order by '字段') as '字段'
from 表名 where 条件

2. 示例对比:

2.1 原始查询结果

select emp_uid from PRS_CALC_DATA where agency_code='101002' and prtype_code='002'

2.2 用listagg函数查询之后的结果

select listagg(emp_uid,',') within group (order by emp_uid) as emp_uid
from PRS_CALC_DATA where agency_code='101002' and prtype_code='002'

3. 应用

  给100个人计算工资,计算的后台接口统计的是工资编制表中每个人员对应的id值,故需要将该id值查询出来传给计算接口。实现如下:

3.1 查询语句

3.2 提取查询结果

3.3 传入查询结果 

3.4 查看结果

*****************************************************************************************************************************************************************************************************************

如果不使用listagg函数,会只计算一个人的工资(因为只传入了一个id值)。示例如下:

*****************************************************************************************************************************************************************************************************************

Oracle查询,将某列查询结果用逗号隔开,拼接成一行(listagg函数)的相关教程结束。

《Oracle查询,将某列查询结果用逗号隔开,拼接成一行(listagg函数).doc》

下载本文的Word格式文档,以方便收藏与打印。