You didn't say what version of Oracle you have, so I won't tell you what version of Oracle is needed for this code. Now we're even.
WITH DATA(K, V) AS (SELECT
'ICF','RESUB' FROM DUAL UNION ALL SELECT
'DDF','RESF' FROM DUAL UNION ALL SELECT
'ICF','RESUB PA' FROM DUAL UNION ALL SELECT
'DDF',NULL FROM DUAL UNION ALL SELECT
'ICF','RESUB PB' FROM DUAL UNION ALL SELECT
'DDF','RESUB PF' FROM DUAL UNION ALL SELECT
'ICF','901 RESPONSE' FROM DUAL UNION ALL SELECT
'DDF','_' FROM DUAL UNION ALL SELECT
'ICF','901 APPEAl' FROM DUAL UNION ALL SELECT
'DDF','901 RES' FROM DUAL
)
select * from (
SELECT K, V, ROW_NUMBER() OVER(PARTITION BY K ORDER BY V) RN
FROM DATA
)
pivot(max(v) col for rn in(1,2,3,4,5,6,7,8,9));
K 1_COL 2_COL 3_COL 4_COL 5_COL 6_COL 7_COL 8_COL 9_COL
--- ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------
DDF 901 RES RESF RESUB PF _
ICF 901 APPEAl 901 RESPONSE RESUB RESUB PA RESUB PB
To get more columns, just add ",10,11,12" and so on.