SQLSqlerver 存储过程使用While出题一年级两位数进位加减法

给老大出一部分一年级的练习题,excel一个个想太费劲,想了想还是写个存储过程一次全出来吧。有时候存储过程使用游标挺慢的,这次用while写一下。代码如下:

create procedure [dbo].[UBMP_Cal_TAndO]
as
begin
declare   @maxNum int,@minNum int,@currNum int,@iNum int,@GNum int,@result varchar(20),@resultNum int
set @maxNum=99
set @minNum=11
set @currNum=11
delete from UBMP_Biz_Subject
-------------------------11到99退位减法
	while @currNum<=@maxNum
			begin
			set @resultNum=0;
				set @iNum=1;
				 while  @iNum<=9
				  begin
					   set @GNum=cast(substring(cast(@currNum as varchar(2)),2,1) as int)
					      
						   if @GNum-@iNum<0
							  begin
								  set @result=cast(@currNum as varchar(2))+'-'+cast(@iNum as varchar(2))+'=';
								  print('个位:'+cast(@GNum as varchar(1))+'被减数:'+cast(@currNum as varchar(2))+'减数:'+cast(@iNum as varchar(1))+@result);
								  set @resultNum=@currNum-@iNum
								  insert into UBMP_Biz_Subject values(newid(),'一年级','2位减1位退位减法',@result,@resultNum,getdate())
							  end
						  set @iNum=@iNum+1
				  end
			  set @currNum=@currNum+1
		end
-------------------------11到99进位加法
		set @maxNum=99
		set @minNum=11
		set @currNum=11
		while @currNum<=@maxNum
			begin
			set @resultNum=0;
			set @iNum=1;
			 while  @iNum<=9
			  begin
				   set @GNum=cast(substring(cast(@currNum as varchar(2)),2,1) as int)
				   if @GNum+@iNum>10
					  begin
						  set @result=cast(@currNum as varchar(2))+'+'+cast(@iNum as varchar(2))+'=';
						    set @resultNum=@currNum+@iNum;
						  insert into UBMP_Biz_Subject values(newid(),'一年级','2位加1位进加法',@result,@resultNum,getdate())
					  end
					  set @iNum=@iNum+1
			  end
			  set @currNum=@currNum+1
			end
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值