DM8: 达梦数据库生成100以内2位数加减法

DM8:达梦数据库生成100以内2位数加减法

1 创建 存储题目 的资源表:

CREATE TABLE SYSDBA.MATH100(ID INT,C1 VARCHAR2(32),C2 VARCHAR2(32),C3 VARCHAR2(32));

2 创建存储过程:
  L1 :题目行数 * 3列 ,
  N1 :参与运算的 加数 / 减数 最大值

CREATE PROCEDURE MATH_IN_100(L1 INT,N1 INT) AS
DECLARE
--循环次数
L INT :=L1;

--加数/减数 最大值
N INT = N1;

--计数器
I1 INT :=1;
I2 INT :=1;
I3 INT :=1;
--可变数字
NUM INT :=0;
NUM1 INT := 0;
NUM2 INT := 0;
NUM3 INT := 0;


BEGIN
	-- 删除之前生成的历史数据
	DELETE FROM SYSDBA.MATH100;
	-- 生成第一列计算题
	WHILE (I1<=L) LOOP
		NUM1 := ((ROUND( RAND() * N)));
		NUM2 := ((ROUND( RAND() * N)));
		NUM3 := ((ROUND( RAND() * N)));
		
		NUM := NUM1 + NUM2 - NUM3;
		IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
			INSERT INTO MATH100 (C1,ID)VALUES(NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___',I1);
			I1 :=I1+1;
		END IF;
	END LOOP;
	-- 生成第二列计算题
	WHILE (I2<=L) LOOP
		NUM1 := ((ROUND( RAND() * N)));
		NUM2 := ((ROUND( RAND() * N)));
		NUM3 := ((ROUND( RAND() * N)));
		
		NUM := NUM1 + NUM2 - NUM3;
		IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
			UPDATE  MATH100 SET C2 = (NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___') WHERE ID=I2;
			I2 :=I2+1;
		END IF;
	END LOOP;
	-- 生成第三列计算题
	WHILE (I3<=L) LOOP
		NUM1 := ((ROUND( RAND() * N)));
		NUM2 := ((ROUND( RAND() * N)));
		NUM3 := ((ROUND( RAND() * N)));
		
		NUM := NUM1 + NUM2 - NUM3;
		IF(NUM1>9&&NUM2>9&&NUM3>9&&NUM1<N&&NUM2<N&&(NUM1+NUM2)<=100&&NUM>0) THEN
			UPDATE  MATH100 SET C3 = (NUM1 || '+' || NUM2 || '-' || NUM3 || '='||'___')WHERE ID=I3;
			I3 :=I3+1;
		END IF;
	END LOOP;
	COMMIT;
END;

3 调用存储过程:
  L1 :题目行数 * 3列 ,
  N1 :参与运算的 加数 / 减数 最大值

  CALL SYSDBA.MATH_IN_100(L1 INT,N1 INT);

CALL SYSDBA.MATH_IN_100(10,100);

4 在管理工具查询SYSDBA.MATH100 表,

SELECT C1,C2,C3 FROM "SYSDBA"."MATH100";

结果集:
在这里插入图片描述

5 在结果集右键 导出所有(w) 到excel
在这里插入图片描述

6 打开excel,每列展开,选择打印预览,缩放比例调整为 200%,打印即可
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值