日期:2014-05-17 浏览次数:20445 次
declare @a int,@b int,@c varchar(100) set @a=1 while(@a<=9) begin select @b=1,@c='' while(@b<=@a) begin select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' ' set @b=@b+1 end print @c+char(10) set @a=@a+1 end
declare @a int,@b int,@c varchar(100) --定义乘法表的两个乘数,@c是将乘法表的每行按照字符串的格式输出! set @a=1 --定义最外边乘数的初始值,就是乘法表中每行右边的数。 while(@a<=9) --循环体条件 begin select @b=1,@c='' --定义里层乘数初始值,结果字符串变量@c赋值为空,否则是NULL,输出也会是NULL。 while(@b<=@a) --乘法表格式的一个循环条件,按左下三角格式输出。 begin select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' ' --给输出字符串赋值,类似 1*1=1 具体以字符串格式输出。 set @b=@b+1 --里层循环控制条件。 end print @c+char(10) --输出字符串加换行符打印。 set @a=@a+1 --外层循环控制条件。 end
------解决方案--------------------
--定义变量 declare @a int,@b int,@c varchar(100) --赋a初始值 set @a=1 --开始循环,条件:a小于等于9 while(@a<=9) begin --赋初始值 select @b=1,@c='' --开始循环,条件:b小于等于a while(@b<=@a) begin --执行乘法运算 select @c=@c+cast(@b as varchar)+'*'+cast(@a as varchar)+'='+cast(@a*@b as varchar)+' ' --b加1 set @b=@b+1 end --打印结果 print @c+char(10) --a加1 set @a=@a+1 end