select
を発行しているという理由だけで、このような出力が得られます。 テーブルに対するステートメント(tbl
テーブル)これには、行とpivot
を一意に識別する列(たとえば、主キー列)が含まれていると思われます。 演算子はその列の値を考慮します。簡単な例を次に示します。
/*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
)
このようなテーブルに対するクエリは、質問で提供した出力(望ましくない出力)を提供します:
select A,B
from tbl
pivot(
max(col2) for col1 in ('a' as A,'b' as B)
)
結果:
A B
-- --
a1 null
null b1
目的の出力を生成するには、行に一意の値を持つ列を除外する必要があります:
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)
)
結果:
A B
-- --
a1 b1