a solução a_horse_with_no_name-s seria
SELECT distinct Key,(level + StartNum)-1 Num
FROM Table1
CONNECT BY (LEVEL +StartNum ) <= EndNum+1
order by Key, Num
Resultado:
A 1
A 2
A 3
B 6
B 7
B 8
Mas eu prefiro criar uma tabela temporária global e preenchê-la a partir do plsql, pois o método acima contém decarts subsequentes na tabela (portanto, o distinto necessário).http://www.dba-oracle.com/t_temporary_tables_sql.htm