Yes, just write your pivot out like normal. Missing values appear as null:
create table t (
ID int,Attribute varchar2(1),Value int
);
insert into t values (1,'X',3);
insert into t values (1,'Y',4);
insert into t values (2,'X',5);
insert into t values (3,'X',6);
insert into t values (3,'Y',7);
insert into t values (3,'Z',8);
insert into t values (3,'A',9);
commit;
select * from t
pivot (
min(value) for attribute in (
'X' as x, 'Y' as y, 'Z' as z, 'A' as a
)
);
ID X Y Z A
1 3 4
2 5
3 6 7 8 9