Oracle分组后拼接未分组字段、查询导入新表

Oracle分组后拼接未分组字段、查询导入新表

干货:
listagg( 要拼接的字段名 , 分隔符 ) within group (order by 排序的字段名 )

语句

select 分组字段名 as name,
       listagg(要拼接的字段名, ',') within group(order by 排序的字段名),
       listagg(要拼接的字段名, ',') within group(order by 排序的字段名2)
  from 表名
 group by 分组字段名;

查询导入新表

insert into 
  YJGL_USER_DATA_JKSJXM_LOG(
      LX0000, 
      ID0000,
      SJ0001) 
      
select 
      LX0000,
      dbms_random.string('x',32),
      listagg(SJ0001, ',') within group(order by FSRQ00 desc) SJ0001
  from YJGL_USER_DATA_JKSJXM  
  	WHERE yhid00 = '4a3bf85e4d9240e1bde01dc68b2dd806'  and lx0000 = '既往病史' 
 group by LX0000, YHID00

dbms_random.string(‘x’,32) 随机生成32个字符串

你可能感兴趣的:(oracle,数据库)