相关疑难解决方法(0)

将 WM_CONCAT 转换为 Listagg

我的 DBA 正在将我的 oracle 数据库从 v10 升级到 v12。我有一些旧的 SP 在使用wm_concat,我需要将其更改为listagg. 有问题的代码是这样的:

Select  registration_id,package_set_id,
        REPLACE(REPLACE(WM_CONCAT(REPLACE( (case when ROW_NUMBER() over (partition by product_id,product_detail_set_id,registration_id,product_family_id,application_id,package_Set_id,
               legal_status order by packset_country)=1 then legal_status else null end), ',' , '#')) OVER (PARTITION BY PRODUCT_ID,  PRODUCT_DETAIL_SET_ID,
               REGISTRATION_ID  ,PRODUCT_FAMILY_ID,APPLICATION_ID,PACKAGE_SET_ID   ORDER BY Packset_country  ), ',' , ' | '), '#', ',') as legal_status,

        (REPLACE(REPLACE(WM_CONCAT(REPLACE(ev_code, ',' , '#')) OVER (PARTITION BY PRODUCT_ID,  PRODUCT_DETAIL_SET_ID,
               REGISTRATION_ID  ,PRODUCT_FAMILY_ID,APPLICATION_ID,PACKAGE_SET_ID   ORDER BY ev_code  ), ',' , ' | '), '#', ',')) EV_CODES, …
Run Code Online (Sandbox Code Playgroud)

sql oracle listagg wm-concat

4
推荐指数
1
解决办法
1万
查看次数

标签 统计

listagg ×1

oracle ×1

sql ×1

wm-concat ×1