Oracle 将表从多行聚合到一行
我有一个数据表,如下所示:Oracle 将表从多行聚合到一行,oracle,oracle11g,pivot,Oracle,Oracle11g,Pivot,我有一个数据表,如下所示: Name opening receipt transfer closing abcd 1000 40 30 1010 efg 256 109 219 146 hjk 9356 210 210 9356 mnp
Name opening receipt transfer closing
abcd 1000 40 30 1010
efg 256 109 219 146
hjk 9356 210 210 9356
mnp 2000
我需要的是这样的结果-
opening_abcd receipt_abcd transfer_abcd closing_abcd opening_efg receipt_efg .....
1000 40 30 1010 256 109 .....
到目前为止,我一直在尝试一个接一个地创建多个视图,其中的一行值如下-
select opening opening_abcd, receipt receipt_abcd, transfer transfer_abcd, closing closing_abcd
from this_table
where name = 'abcd'
对于其他人也是如此,然后我使用JOIN将它们合并在一起
如果我可以在一个查询中选择所有这些值,或者以比我更好的任何其他方式选择它们,是否有一种可能的解决方案?您是否有一组有限的、已定义的、来自
name
列的值,以供您参考?我也不确定如何“使用join合并它们”。您肯定需要将结果合并在一起?您使用的是具有内置PIVOT运算符的Oracle 11g。请看Tim Hall的优秀网站。@Ben:实际上我有4行,这意味着4个不同的“名称值”。@Ben:我可以在公共列的基础上使用自然连接。对吗?@Colin't Hart&Ben:我使用了“pivot”方法,它对我来说非常好,这意味着当我在sql developer中以查询方式运行它时,它工作得很好,但是当我使用相同的语句创建视图时,它会抛出错误作为“意外令牌!”!在枢轴附近……,那么它为什么会在那里抛出错误。