今天去开发版块转了转,看到一个帖子大家在热烈的讨论乘法口诀。记得以前学习C++的时候最基本的题就是在屏幕上输出一个惩罚口诀。当初是用两个循环就实现了,今天看到很多人用各种不同的方法,学习了不少。在这里把大家的方法总结汇总一下。

=================================================================================

//by benchim888

//利用while 循环

set serveroutput on;

declare

i int;

j int;

begin

i:=1;

j:=1;

while i < 10

loop

while j <= i

loop

dbms_output.put(i||'*'||j||'=');

if length(i*j) = 1 and j!=1 then

dbms_output.put(' ');

end if;

dbms_output.put(i*j||' ');

j:=j+1;

end loop;

j:=1;

i:=i+1;

dbms_output.put_line(' ');

end loop;

end;

/

***********************************

利用for循环

set serveroutput on;

declare

begin

for i in 1..9 loop

for j in 1 .. i loop

dbms_output.put(i);

dbms_output.put('*');

dbms_output.put(j);

dbms_output.put('=');

if length(i*j) = 1 and j!=1 then

dbms_output.put(' ');

end if;

dbms_output.put(i*j);

dbms_output.put(' ');

end loop;

dbms_output.put_line(' ');

end loop;

end;

/

/*

dbms_putline.put

dbms_output.put_line(' ') 或者dbms_output.new_line;

dbms_output.put_line 相当于先dbms_output.put再dbms_output.new_line

*/

下面的方法就是用SQL语句来写了哦,呵呵。

//by wildwave

select a.rn,substr(max(sys_connect_by_path(a.rn||'*'||b.rn||'='||a.rn*b.rn,',')),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

RN SUBSTR(MAX(SYS_CONNECT_BY_PATH

1 1*1=1

2 2*1=2,2*2=4

3 3*1=3,3*2=6,3*3=9

4 4*1=4,4*2=8,4*3=12,4*4=16

5 5*1=5,5*2=10,5*3=15,5*4=20,5*5=25

6 6*1=6,6*2=12,6*3=18,6*4=24,6*5=30,6*6=36

7 7*1=7,7*2=14,7*3=21,7*4=28,7*5=35,7*6=42,7*7=49

8 8*1=8,8*2=16,8*3=24,8*4=32,8*5=40,8*6=48,8*7=56,8*8=64

9 9*1=9,9*2=18,9*3=27,9*4=36,9*5=45,9*6=54,9*7=63,9*8=72,9*9=81

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

RN 口诀

1 一一得一

2 一二得二,二二得四

3 一三得三,二三得六,三三得九

4 一四得四,二四得八,三四十二,四四十六

5 一五得五,二五一十,三五十五,四五二十,五五二十五

6 一六得六,二六十二,三六十八,四六二十四,五六三十,六六三十六

7 一七得七,二七十四,三七二十一,四七二十八,五七三十五,六七四十二,七七四十九

8 一八得八,二八十六,三八二十四,四八三十二,五八四十,六八四十八,七八五十六,八八六十四

9 一九得九,二九十八,三九二十七,四九三十六,五九四十五,六九五十四,七九六十三,八九七十二,九九八十一

select replace(substr(max(sys_connect_by_path(口诀,'#')),2),'#',chr(10)) from(

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)

start with rn=1

connect by prior rn=rn-1

//这里好像少了个列标题?!

一一得一

一二得二,二二得四

一三得三,二三得六,三三得九

一四得四,二四得八,三四十二,四四十六

一五得五,二五一十,三五十五,四五二十,五五二十五

一六得六,二六十二,三六十八,四六二十四,五六三十,六六三十六

一七得七,二七十四,三七二十一,四七二十八,五七三十五,六七四十二,七七四十九

一八得八,二八十六,三八二十四,四八三十二,五八四十,六八四十八,七八五十六,八八六十四

一九得九,二九十八,三九二十七,四九三十六,五九四十五,六九五十四,七九六十三,八九七十二,九九八十一

oracle打印乘法口诀,ORACLE中实现输出乘法口诀相关推荐

  1. 1以下数字Oracle打印缺少0,Oracle SQL中缺少關鍵字

    我收到以下錯誤: ORA-00905: missing keyword 00905. 00000 - "missing keyword" 我的SQL: CREATE Table O ...

  2. java 输出乘法口诀第一列_java输出乘法口诀表

    输出10以内的乘法表,该题没有输入,输出请参照输出样例. 注:其中部分代码为 System.out.println(" Multiplication Table"); System ...

  3. oracle打印awr报告,oracle导出AWR报告步骤

    1.进入数据库 sqlplus / as sysdba ps:如果出现用户密码错误, 计算机管理 > 组 > ora_dba组里的用户登陆操作系统,就可以无需输入用户和口令,直接以sysd ...

  4. python使用for循环打印99乘法表-Python中的九九乘法表(for循环)

    用for循环写出的九九乘法表(包括函数的调用) #方向一 for i in range(1,10): for j in range(1,i+1): d = i * j print('%d*%d=%-2 ...

  5. python for循环九九乘法表_Python中的九九乘法表(for循环)

    用for循环写出的九九乘法表(包括函数的调用) #方向一 for i in range(1,10): for j in range(1,i+1): d = i * j print('%d*%d=%-2 ...

  6. c语言金字塔输出乘法表,python中打印金字塔和九九乘法表的几种方法

    # 打印九九乘法表 for i in range(1,10): for j in range(1,i+1): # x=i*j # print(i,'*',j,'=',x,end=' ') print( ...

  7. 打印100~200 之间的素数,输出乘法口诀表,判断1000年---2000年之间的闰年

    1.打印100~200 之间的素数 #include <stdio.h> int main() { int n,i; for(i=100;i<=200;i=i++) { for(n= ...

  8. oracle触发器比较,Oracle使用触发器和mysql中使用触发器的比较

    一.触发器 1.触发器在数据库里以独立的对象存储, 2.触发器不需要调用,它由一个事件来触发运行 3.触发器不能接收参数 --触发器的应用 举个例子:校内网.开心网.facebook,当你发一个日志, ...

  9. linux中oracle静默安装失败,oracle 11 Linux 静默安装 步骤及错误解决(更新中)

    oracle 11 Linux 静默安装 步骤及错误解决(更新中) oracle 11 Linux 静默安装 步骤及错误解决(更新中) [待更新] oracle成功安装完成后 显示的页面如下 : 此时 ...

最新文章

  1. RDKit | 基于随机森林(RF)预测SARS-CoV 3CL蛋白酶抑制剂的pIC50
  2. [Bug]当IDENTITY_INSERT设置为OFF时,不能为表“xx”中的标识列插入显示的值
  3. CodeForces - 932D Tree(树上倍增,好题)
  4. iOS-BMK标注覆盖物
  5. IOS-NSDateFormatter使用介绍
  6. java获取panel面板画笔_java - paintComponent()与paint()和JPanel vs Canvas在画笔类型的GUI中 - 堆栈内存溢出...
  7. pymssql.OperationalError: (20017 问题解决
  8. UI设计干货素材|简单素材模板教你分分钟提高UI设计水平!
  9. 第2章[2.8] Ext JS的控制器类型及使用
  10. Netty的前期准备:初探NIO中的缓冲区
  11. 【青草识别】基于matlab GUI形态学马唐草+牛筋草识别【含Matlab源码 1041期】
  12. 移动机器人路径规划算法综述(二)
  13. Linux开发(驱动应用)学习路线规划
  14. 什么是简单边界点(Simple border points)
  15. hc-05 android 蓝牙连接,实用,教你简单使用HC05蓝牙模块及如何配对?
  16. Hyperledger Fabric无排序组织以Raft协议启动多个Orderer服务、TLS组织运行维护Orderer服务
  17. 存在感应雷达模块 毫米波雷达传感器 智能生活技术应用
  18. 关于H5移动端用什么自动化测试
  19. c语言中1 lt lt 10什么意思,卡西欧lt1和lt3是什么意思
  20. ST电机库v5.4.4源代码分析(7): SpeednPosFdbk_Handle_t在几个结构体中的关系

热门文章

  1. count(1)、count(*) 与 count (列名) 的执行区别
  2. 用Python分析北上广深租房情况,租房时优先考虑哪些因素?
  3. Django博客系统项目需求分析
  4. OSPF 协议中各种邻居状态的含义是什么?
  5. 仅用CPU就能跑到1000FPS,这是开源的C++跨平台人脸检测项目
  6. Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?
  7. 线扫相机——机器视觉中无限制物体的检测
  8. 详解OpenCV卷积滤波之边缘处理与锚定输出
  9. 梯度提升树算法原理小结
  10. Syncfusion教程:在Xamarin.Forms中创建数据输入表单 (3)