我有一个场景,我需要从列中取几行并将其作为单独的列。
我现在的表:
Id Description
1 abc
2 abc
3 abc
4 abc
1 xyz
2 xyz
3 xyz
4 xyz
必需的输出:
id Desp1 Desp2
1 abc xyz
2 abc xyz
3 abc xyz
4 abc xyz
任何人都可以帮助我。
答案 0 :(得分:0)
您可以使用listagg
函数以及instr
和substr
函数的组合,而不是自我加入。
select id,substr(Description, 0, instr(Description, ',',1,1)-1) Desp1,
substr(Description, instr(Description, ',',1,1)+1) Desp2
from
(select id, listagg(Description,',') within group (order by Description) as
Description from sam group by id)
注意:上述查询用逗号分隔Description
字段,并且只拆分为两列,如示例所示。