赞
踩
给老大出一部分一年级的练习题,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

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。