Oracle行拼接问题

微博:https://weibo.com/6274976536/profile?rightmod=1&wvr=6&mod=personinfo&is_all=1

SQL:

wm_concat 方法:

SELECT t.fterms4id,t.ftype,replace(MAX(FNAME),' ,',chr(10)) AS FNAME FROM (SELECT t.fterms4id,t.ftype,

       wm_concat(t.fname||' ') OVER(PARTITION BY t.fterms4id,t.ftype ORDER BY t.fxh) FNAME
  from T_EVALUATE_TERM4_PSFF t ) t

  GROUP BY t.fterms4id,t.ftype

解析:

1. wm_concat(t.fname||' ') OVER(PARTITION BY t.fterms4id,t.ftype ORDER BY t.fxh) 

wm_concat 函数, 实现拼接要合并行的字符串

(t.fname||' ')   由于wm_concat函数,默认拼接时使用‘,’分隔符,此处实现分隔符‘,’后面添加空格,以便稍后替换掉分隔符‘,’时使用

 OVER   为wm_concat函数添加条件

PARTITION BY 相当于分组函数  group by 

ORDER BY  即为排序

2. replace(MAX(FNAME),' ,',chr(10))  此处为实现拼接后操作

MAX(FNAME)   取出拼接最完成的数据

chr(10)  为换行符

replace  即实现将分隔符‘,’和之前拼接的空格 替换为 换行符

within group 方法:

SELECT fhospitalid, listagg(fgroupid, ',') within group(ORDER BY fhospitalid) AS fgroupid
  FROM t_drgs_hospital_group_ref t 
 GROUP BY fhospitalid


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值