度量快速开发平台-专业、快速的软件定制快开平台

标题: oracle也可以解决数学难题了 [打印本页]

作者: 陈晓龙    时间: 2020-5-17 16:59
标题: oracle也可以解决数学难题了
曾经看到一个传说,数据库界有几位大师,可以用SQL语句来解数学难题。至于真假和案例,我也没见过。但是可以肯定的是,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;





作者: 陈晓龙    时间: 2020-5-17 17:07
强大的数据库工具呀!
作者: 王爱东    时间: 2020-5-17 17:50
这也行,确实很强大。sql学好了。真是受用啊。
作者: 万望    时间: 2020-5-17 21:36
条条道路同罗马
作者: 陈晓龙    时间: 2020-5-18 19:41
万望 发表于 2015-12-17 21:36
条条道路同罗马

sql 魅蓝无限呀!
作者: 陈晓龙    时间: 2020-5-18 19:56
万望 发表于 2015-12-17 21:36
条条道路同罗马

打错字了,是魅力!
作者: 张兴康    时间: 2020-5-21 18:20
九九乘法表之前我只用Java代码实现过,sql实现起来还是挺不错的嘛
作者: 张兴康    时间: 2020-5-21 18:21
万望 发表于 2015-12-17 21:36
条条道路同罗马

为毛不是通北京?
作者: 陈晓龙    时间: 2020-5-21 18:50
张兴康 发表于 2015-12-21 18:20
九九乘法表之前我只用Java代码实现过,sql实现起来还是挺不错的嘛

嗯嗯,多学习!
作者: 陈晓龙    时间: 2020-5-21 18:54
张兴康 发表于 2015-12-21 18:21
为毛不是通北京?

没有北京这个说发,一般都是罗马!
作者: 张兴康    时间: 2020-5-22 13:40
陈晓龙 发表于 2015-12-21 18:54
没有北京这个说发,一般都是罗马!







欢迎光临 度量快速开发平台-专业、快速的软件定制快开平台 (http://p.delit.cn/) Powered by Discuz! X3.2