【转】with as 递归实现嵌套循环



with t (v_str, i,j)
as
(
   select '@' v_str, 1 i,1 j from dual
   union all
   select cast (
          case when mod(t.i,2) = 0 then
              t.v_str||'#'  
          else
              t.v_str||'$'  
          end 
          as varchar2(1000)) v_str,
          case when t.j=3 then
            t.i+1
          else
            t.i
          end i,
          case when t.j=3 then
            1
          else
            t.j+1
          end j
   from t
   where t.i<=3
)
CYCLE i,j SET CYCLE_FLAG TO 'Y' DEFAULT 'N'

select * from t where t.i<=3

--效果同:

--for i in 1..3 loop
--  for j in 1..3 loop
--        putline...;
--  end loop;
--end loop;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值