Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将多行合并到一个oracle sql中_Sql_Oracle_Oracle11g - Fatal编程技术网

如何将多行合并到一个oracle sql中

如何将多行合并到一个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 我总

我有一张这样的桌子

从人员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

我总是每人排九行。因此,我可以创建非动态列,但似乎无法做到这一点。这需要在纯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"...)
)