如何使用模式将多个结果选择为一行

时间:2016-11-17 03:01:46

标签: sql oracle oracle11g pivot

我看过Concatenate multiple results into one row而我对此并不了解。

我的表:

-----------------
|    P_TABLE    |
-----------------
| P_ID | P_DATA |
|  12  |  AAAA  |
|  15  |  BBBB  |
|  19  |  CCCC  |
-----------------

通常查询为SELECT P.P_ID FROM P_TABLE P,结果为

--------
| P_ID |
--------
|  12  |
|  15  |
|  19  |
--------

但是,我需要这样的结果

---------------
|    P_ID     |
---------------
|  (12,15,19) |

怎么样?

我认为此解决方案可能由Oracle PIVOT解决,但我不知道如何使用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为您可以使用LISTAGG

select listagg(p_id,',') within group (order by p_id) p_id from p_table;