1、wm_concat 函数
select t2.clmno, wm_concat(t1.icdshortname) as ClaimDiagnose
from lddisease t1
left join lldisease t2
on t1.icdcode = t2.icdcode
group by t2.clmno
默认用逗号连接
2、listagg函数
select t1.clmno,
listagg(t2.icdshortname, '-') within group(order by t1.icdcode)
from lldisease t1
left join lddisease t2
on t1.icdcode = t2.icdcode
group by t1.clmno
上面两个函数 可以实现多行转一列
3、利用decode 实现行转列
4、在Oracle 11g中,Oracle 又增加了2个查询:pivot(行转列) 和unpivot(列转行)