Anda mendapatkan output seperti itu hanya karena Anda mengeluarkan select
pernyataan terhadap tabel (tbl
your Anda table) yang mungkin berisi kolom (misalnya kolom kunci utama) yang secara unik mengidentifikasi baris dan pivot
operator mempertimbangkan nilai kolom itu. Berikut ini contoh sederhananya:
/*assume it's your table tbl */
with tbl(unique_col, col1, col2) as(
select 1, 'a', 'a1' from dual union all
select 2, 'b', 'b1' from dual union all
select 3, 'c', 'c1' from dual
)
Kueri terhadap tabel seperti itu akan memberi Anda keluaran (keluaran yang tidak diinginkan) yang Anda berikan dalam pertanyaan:
select A,B
from tbl
pivot(
max(col2) for col1 in ('a' as A,'b' as B)
)
Hasil:
A B
-- --
a1 null
null b1
Untuk menghasilkan keluaran yang diinginkan, Anda perlu mengecualikan kolom dengan nilai unik untuk satu baris:
select A
, B
from (select col1
, col2 /*selecting only those columns we are interested in*/
from tbl )
pivot(
max(col2) for col1 in ('a' as A,'b' as B)
)
Hasil:
A B
-- --
a1 b1