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
)
)