WITH source(ID, NAME, ADD1, ADD2, ADD3, ADD4, ADD5, ADD6) AS (
SELECT 1, 'ABC', '12B', '13B', '14B', '15B', '16B', '17B' FROM dual
UNION ALL
SELECT 2, 'BBC', '10V', 'VCF', 'BB', NULL, NULL, NULL FROM dual
UNION ALL
SELECT 3, 'ADD', '30', NULL, NULL, NULL, NULL, NULL FROM dual
)
SELECT ID, NAME, "ADD"
FROM source
UNPIVOT ( "ADD" FOR col IN (ADD1, ADD2, ADD3, ADD4, ADD5, ADD6));
Tested on oracle 11.2.0.1.
-- Gianluca Sartori