oracle sql 写9乘9

来源:互联网 发布:c语言数字后面加u 编辑:程序博客网 时间:2024/06/10 17:58


oracle sql


WITH tmp AS
  ( SELECT rownum rn FROM all_objects WHERE rownum<=9
  )
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 tmp A,
  tmp 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;

0 0
原创粉丝点击