Oracle11g 在ORACLE中将数据拆分为一列并将其转换为列标题

Oracle11g 在ORACLE中将数据拆分为一列并将其转换为列标题,oracle11g,Oracle11g,我有一张这样的桌子。我所需要做的就是将指定列中的数据拆分为新的列标题,并将匹配值分配给其他列中的列 App_No Code Amount a rvd 100 a pqd 200 b srv 100 b rvd 500 b crb 300 c srv 200 and I n

我有一张这样的桌子。我所需要做的就是将指定列中的数据拆分为新的列标题,并将匹配值分配给其他列中的列

App_No       Code     Amount

  a           rvd      100
  a           pqd      200
  b           srv      100
  b           rvd      500
  b           crb      300
  c           srv      200

and I need to select this data and convert them to a format like this.

    App_No      rvd     pqd     srv     crb

      a         100     200      0       0
      b         500      0      100     300  
      c          0       0      200      0
我需要用代码数据制作列标题。我如何在oracle中实现这一点?我可以用“枢轴”来做这个吗

试试这个:
code
列的可能值集是否事先已知?是。只有16个值,这些值是已知值。它很好用。但有一个问题。有空的单元格。如何将0放入空单元格。有人能告诉我如何将0放入此结果集中的空单元格吗?空单元格是什么意思?您可以对空值使用nvl func。每个应用程序都没有rvd、rqd。。。所有的价值观。有些人只有两到三个。所以空表示空值。但是在这里,空值的结果集没有显示任何内容。空单元格表示空值。可以使用nvl吗?
select  
app_no,
nvl(rvd,0)rvd,
nvl(rqd,0)rqd,
nvl(srv,0)srv,
nvl(crb,0)crb
from
main_table 
PIVOT
(
sum(amount) for (code) in (
'rvd' as rvd,
'rqd' as rqd,
'srv' as srv,
'crb' as crb
) 
)