示出了从在我的Oracle数据库的多列单列

问题描述:

数据包含以下数据示出了从在我的Oracle数据库的多列单列

http://i1207.photobucket.com/albums/bb476/daniwarrior/data-awal.jpg

我要显示的数据如下所示

http://i1207.photobucket.com/albums/bb476/daniwarrior/data-aKHIR.jpg

白名单柱是合并whitelist_pembayaran列,whitelist_pemasan和whitelist_jenis_iklan

黑名单列正在合并blacklist_pembayaran列,blacklist_pemasang和blacklist_jenis_iklan

在Oracle中查询是否可以做什么?如果你能如何查询像上述

* )对不起,我不能显示图片,因为我的名声不太能够显示图像的画面显示数据,所以我提供了一个链接到图片

+0

可能的重复[如何将多行组合成逗号分隔列表中的Oracle?](http://*.com/questions/468990/how-can-i-combine-multiple-rows-into-一个逗号分隔的列表,在甲骨文) – APC

这是组和串连接中的字符串聚合。

在Oracle 11g中,您可以:

select 
    id_pegawai, 
    listagg(whitelist_pembayaran||whitelist_pemasan||whitelist_jenis_iklan,',') within group (order by id_pegawai) as whitelist, 
    listagg(blacklist_pembayaran||blacklist_pemasang||blacklist_jenis_iklan,',') within group (order by id_pegawai) as blacklist 
from table 
group by id_pegawai; 

(在Oracle < = 10g将可使用wm_concat功能)

但你必须处理逗号。 下面以withelist一试(黑名单是相同的代码):

select 
    id_pegawai, 
    listagg(whitelist_pembayaran||decode(whitelist_pembayaran,null,null,',')|| 
      whitelist_pemasan||decode(whitelist_pemasan,null, null, ',')|| 
      whitelist_jenis_iklan,',') 
    within group (order by id_pegawai) as whitelist 
from table 
group by id_pegawai; 

作为解释:解码会把一个逗号后场仅如果该字段不为空。在whitelist_jenis_iklan不需要昏迷和listagg知道处理它的逗号。