跟着前辈大牛们学习了这么久,CSDN的处女贴,来个99乘法表,像大牛们学习!
DECLARE @NumAINT=1
DECLARE @NumBINT=1
DECLARE @StrVARCHAR(200)
WHILE @NumA<=9
BEGIN
SET @Str=''
SET @NumB=1
WHILE @NumB<=@NumA
BEGIN
SET @Str=@Str+RTRIM(@NumB)+'*'+RTRIM(@NumA)+'='+RTRIM(RIGHT(100+@NumA*@NumB,2))+SPACE(1)
SET @NumB=@NumB+1
END
SET @Str = REPLACE(@Str, '=0', '= ')
PRINT @Str
SET @NumA=@NumA+1
END
PRINT CHAR(13)
/*
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
SET @NumA=1
WHILE @NumA<=9
BEGIN
SET @Str=''
SET @NumB=@NumA
WHILE @NumB>0
BEGIN
SET @Str=@Str+RTRIM(@NumB)+'*'+RTRIM(@NumA)+'='+RTRIM(RIGHT(100+@NumA*@NumB,2))+SPACE(1)
SET @NumB=@NumB-1
END
SET @Str = SPACE((9-@NumA)*7)+REPLACE(@Str, '=0', '= ')
PRINT @Str
SET @NumA=@NumA+1
END
PRINT CHAR(13)
/* 1*1= 1
2*2= 4 1*2= 2
3*3= 9 2*3= 6 1*3= 3
4*4=16 3*4=12 2*4= 8 1*4= 4
5*5=25 4*5=20 3*5=15 2*5=10 1*5= 5
6*6=36 5*6=30 4*6=24 3*6=18 2*6=12 1*6= 6
7*7=49 6*7=42 5*7=35 4*7=28 3*7=21 2*7=14 1*7= 7
8*8=64 7*8=56 6*8=48 5*8=40 4*8=32 3*8=24 2*8=16 1*8= 8
9*9=81 8*9=72 7*9=63 6*9=54 5*9=45 4*9=36 3*9=27 2*9=18 1*9= 9
*/
SET @NumA=9
WHILE @NumA>0
BEGIN
SET @Str=''
SET @NumB=1
WHILE @NumB<=9
BEGIN
IF @NumA>=@NumB
SET @Str=@Str+RTRIM(@NumB)+'*'+RTRIM(@NumA)+'='+RTRIM(RIGHT(100+@NumA*@NumB,2))+SPACE(1)
SET @NumB=@NumB+1
END
SET @Str =REPLACE(@Str, '=0', '= ')
PRINT @Str
SELECT @Str='', @NumA=@NumA-1
END
PRINT CHAR(13)
/*
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*4= 4 2*4= 8 3*4=12 4*4=16
1*3= 3 2*3= 6 3*3= 9
1*2= 2 2*2= 4
1*1= 1
*/
SET @NumA=9
WHILE @NumA>0
BEGIN
SET @Str=''
SET @NumB=@NumA
WHILE @NumB>0
BEGIN
SET @Str=@Str+RTRIM(@NumA)+'*'+RTRIM(@NumB)+'='+RTRIM(RIGHT(100+@NumA*@NumB,2))+SPACE(1)
SET @NumB=@NumB-1
END
SET @Str =SPACE((9-@NumA)*7)+REPLACE(@Str, '=0', '= ')
PRINT @Str
SELECT @Str='', @NumA=@NumA-1
END
/*
9*9=81 9*8=72 9*7=63 9*6=54 9*5=45 9*4=36 9*3=27 9*2=18 9*1= 9
8*8=64 8*7=56 8*6=48 8*5=40 8*4=32 8*3=24 8*2=16 8*1= 8
7*7=49 7*6=42 7*5=35 7*4=28 7*3=21 7*2=14 7*1= 7
6*6=36 6*5=30 6*4=24 6*3=18 6*2=12 6*1= 6
5*5=25 5*4=20 5*3=15 5*2=10 5*1= 5
4*4=16 4*3=12 4*2= 8 4*1= 4
3*3= 9 3*2= 6 3*1= 3
2*2= 4 2*1= 2
1*1= 1
*/
if object_id('Tempdb..#t') is not null drop table #t
create table #t(
[id] int identity(1,1) not null,
[one] varchar(100) null,
[two] varchar(100) null,
[three] varchar(100) null,
[four] varchar(100) null,
[five] varchar(100) null,
[six] varchar(100) null,
[seven] varchar(100) null,
[eight] varchar(100) null,
[nine] varchar(100) null
)
Insert Into #t(one)
select null from master..spt_values where type='P' and number between 1 and 9
update #t
set one=case when id>=1 then '1X'+cast(id as varchar(2))+'='+cast(id as varchar(2)) end,
two=case when id>=2 then '2X'+cast(id as varchar(2))+'='+cast((id*2) as varchar(2)) end,
three=case when id>=3 then '3X'+cast(id as varchar(2))+'='+cast((id*3) as varchar(2)) end,
four=case when id>=4 then '4X'+cast(id as varchar(2))+'='+cast((id*4) as varchar(2)) end,
five=case when id>=5 then '5X'+cast(id as varchar(2))+'='+cast((id*5) as varchar(2)) end,
six=case when id>=6 then '6X'+cast(id as varchar(2))+'='+cast((id*6) as varchar(2)) end,
seven=case when id>=7 then '7X'+cast(id as varchar(2))+'='+cast((id*7) as varchar(2)) end,
eight=case when id>=8 then '8X'+cast(id as varchar(2))+'='+cast((id*8) as varchar(2)) end,
nine=case when id>=9 then '9X'+cast(id as varchar(2))+'='+cast((id*9) as varchar(2)) end
select one,two,three,four,five,six,seven,eight,nine from #t