oracle怎么把一个字段根据不同的条件拆分成多列展现

表Aname type1 A1 B1 A1 C拆分后变成name1 type1 name2 type2 name3 type31 A 1 B 1 C1 A
2024-12-20 21:30:13
推荐回答(5个)
回答1:

with t as (select a.name, a.type, row_number() over(partition by type order by name) r from a)
select max(case when type='A' then name end) name1, 'A' type1,
max(case when type='B' then name end) name2, 'B' type2,
max(case when type='C' then name end) name3, 'C' type3
from t
group by r

回答2:

你直接加 where 条件不就可以啦 :form 表A where type ="A"

回答3:

用decode函数可以

回答4:

你的with t(列名)as

回答5:

想到了行转列PIVOT函数。但是你这个需求,我做不出来。