如何将多行合并到一个oracle sql中
我有一张这样的桌子 从人员id=1的位置选择*;返回如何将多行合并到一个oracle sql中,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我有一张这样的桌子 从人员id=1的位置选择*;返回 person_id colA colB 1 AA BB 1 CC DD 1 EE FF 现在我需要的是 person_id colA colB colA_row_2, colB_Row_2 ColA_row_3 ColB_ROW_3 1 AA BB CC DD EE FF 我总
person_id colA colB
1 AA BB
1 CC DD
1 EE FF
现在我需要的是
person_id colA colB colA_row_2, colB_Row_2 ColA_row_3 ColB_ROW_3
1 AA BB CC DD EE FF
我总是每人排九行。因此,我可以创建非动态列,但似乎无法做到这一点。这需要在纯sql中,无存储过程。提前感谢您需要PIVOT进行查询 参见示例和示例 您必须定义如何将行转换为列 e、 g
您可以使用解码作为替代方案 我最终使用了 挑选 最大值(解码(ROWNUM,1,AA,NULL))AA,。。。。
MAX(解码(ROWNUM,1,FF,NULL))COLB_ROW_3 FROM(选择…) 不管你得到的是1-AA-BB-CC-DD-EE-FF还是1-CC-DD-EE-FF-AA-BB,对吧?
pivot
(
count(colA )
for colA in ('AA' as "AA",'CC' "CC"...)
)