Wenn Sie die folgende Datentabelle haben, die Sie schwenken möchten:
CREATE TABLE yourtable (id int, name varchar2(1), value varchar(10));
INSERT ALL
INTO yourtable (id, name, value )
VALUES (1, 'A', '1500')
INTO yourtable (id, name, value )
VALUES (1, 'B', '4500')
INTO yourtable (id, name, value )
VALUES (2, 'C', '3.5')
INTO yourtable (id, name, value )
VALUES (3, 'B', 'test')
INTO yourtable (id, name, value )
VALUES (4, 'A', 'blah')
INTO yourtable (id, name, value )
VALUES (4, 'C', 'hello')
SELECT * FROM dual;
Und Ihr aktueller Code ähnelt:
select id, OptionA, OptionB, OptionC
from
(
select id, name, value
from yourtable
) src
pivot
(
max(value)
for name in ('A' as OptionA, 'B' OptionB, 'C' OptionC)
) piv
Siehe SQL Fiddle mit Demo . Die Beispieldaten erzeugen null
Werte.
Wenn Sie die null
Werte ersetzen möchten, müssen Sie dies in der endgültigen SELECT
Liste tun . Ihr Code muss also sein:
select id,
coalesce(OptionA, '0') OptionA,
coalesce(OptionB, '0') OptionB,
coalesce(OptionC, '0') OptionC
from
(
select id, name, value
from yourtable
)
pivot
(
max(value)
for name in ('A' as OptionA, 'B' as OptionB, 'C' as OptionC)
);
Siehe SQL Fiddle mit Demo
NVL(column_name,0)
?