如何解决合并oracle行
我的选择中有以下一行
ColA | ColB | ColC | ColD
=========================
A B C1 X1
A B C2 X2
AA BB C3 Y1
AA BB C4 Y1
我想要
ColA | ColB | ColC | ColD | ColE | ColF
=======================================
A B C1 X1 C2 X2
AA BB C3 Y1 C4 Y1
我尝试使用PIVOT,但总是出现错误。我的ColE和ColF值未定义,但我知道对于ColA和B,我总是得到2行。
谢谢
解决方法
如果可以使用PIVOT
的技巧,可以使用row_number
,
select *
from
(
select colA,colB,colC,colD,row_number() over (partition by colA,colB order by colA,colB) rn
from data
)
pivot
(
max(ColC) as colC,max(ColD) as colD
for rn in (1 as colE,2 as colF)
);
P.S。您可以在末尾命名所需的别名。根据您的示例情况,我仅使用了行号1和2,但是您可以根据需要随意提及(hard code
),这是pivot
的缺点。为了解决这个问题,下一步可能需要动态SQL。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。