select
t2.mycode,
t2.code2,
t1.row_num,/*这个序号就不用之前表中的了。直接用新产生的序号字段*/
t2.company_name,
t2.value_a
from (
/*这一部分是产生1-19的序号*/
select level as row_num
from dual
connect by level<=19) t1,
/*下面这一段是只取表中的1行,最后和上面19行的数据做无条件关联。然后就产生要的数据了*/
(
select t.* from (
select '220203001' as mycode,'2022331' as code2,6 as irow,'XXX公司' as company_name,49480 as value_a from dual
union all
select '220203001' as mycode,'2022331' as code2,7 as irow,'XXX公司' as company_name,49480 from dual
union all
select '220203001' as mycode,'2022331' as code2,8 as irow,'XXX公司' as company_name,49480 from dual
) t
where rownum<2) t2
where 1=1
最后的结果如下图
