1、需求:同一合同下,不同最后更新人、制单人放在一个字段里(不允许重复、累加)
下面展示一些 内联代码片
。
// A code block
var foo = 'bar';
select tt2.organization_id,
tt2.CONTRACT_NUMBER,
tt2.Customer_Name,
regexp_replace(listagg(tt2.LAST_UPDATE_NAME,'') within group (order by tt2.CONTRACT_NUMBER),
'([^,]+)(,\1)*(,|$)',
'\1\3') as LAST_UPDATE_NAME,
regexp_replace(listagg(tt2.maker_name,'') within group (order by tt2.CONTRACT_NUMBER),
'([^,]+)(,\1)*(,|$)',
'\1\3') as maker_name,
-- tt2.maker_name,
tt2.business_unit_dsp from (
select t.organization_id,
t.CONTRACT_NUMBER,
t.Customer_Name,
t.Last_Update_Name,
t.maker_name,
t.business_unit_dsp
from SCUX.Scux_Wwdetailedtwo_T t
where 1 = 1
AND t.organization_id = 84
and (t.period_name = Pv_Period_Name or Pv_Period_Name is null)
group by t.organization_id,
t.CONTRACT_NUMBER,
t.Customer_Name,
t.Last_Update_Name,
t.maker_name,
t.business_unit_dsp
) tt2
group by tt2.organization_id,
tt2.CONTRACT_NUMBER,
tt2.Customer_Name,
-- t.Last_Update_Name,
-- tt2.maker_name,
tt2.business_unit_dsp
2、单纯拼接
直接使用listagg()函数即可