现在的位置: 首页 > 综合 > 正文

ORALCE 乘法口诀

2012年08月29日 ⁄ 综合 ⁄ 共 586字 ⁄ 字号 评论关闭

--乘法口诀--
select a.rn,  
  substr(max(sys_connect_by_path(  
    case when a.rn*b.rn>=10 then   
      substr(translate(b.rn||'*'||a.rn||'='||a.rn*b.rn,'1234567890*=','一二三四五六七八九十'),1,  
          case when mod(a.rn*b.rn,10)=0 or a.rn*b.rn>20 then 3 else 2 end)||'十'||  
        translate(mod(a.rn*b.rn,10),'1234567890','一二三四五六七八九')  
      else translate(b.rn||'*'||a.rn||'='||a.rn*b.rn,'123456789=*','一二三四五六七八九得')end  
      ,',')),2)   口诀  
from(select rownum rn from all_objects where rownum<=9)a,  
  (select rownum rn from all_objects where rownum<=9)b  
where a.rn>=b.rn  
connect by prior a.rn=a.rn  
  and prior b.rn=b.rn-1  
start with b.rn=1  
group by a.rn  
order by 1 

抱歉!评论已关闭.