3,490
社区成员
发帖
与我相关
我的任务
分享
with table1(FLAG) as
(
select 0 from dual union all
select 1 from dual union all
select 0 from dual union all
select 1 from dual union all
select 1 from dual union all
select 1 from dual union all
select 0 from dual union all
select 1 from dual union all
select 1 from dual union all
select 0 from dual union all
select 1 from dual union all
select 0 from dual union all
select 1 from dual union all
select 1 from dual union all
select 1 from dual union all
select 1 from dual
)
, table2 as
(
select FLAG, rownum rn from table1
)
select c.rn2, aa.flag from (select flag,(select max(rn) from table2 b where b.rn<=a.rn and b.flag=0) rn, rn rn1 from table2 a)aa
left join (select rn, rownum rn2 from table2 where flag=0) c on aa.rn=c.rn
order by aa.rn1