declare @num1 int,@num2 int
set @num1=1
while(@num1<=9)
begin
set @num2=1
print '----------'+ltrim(str(@num1))+'----------'
while(@num2<=@num1)
begin
print ltrim(str(@num2))+'*'+ltrim(str(@num1))+'='+ltrim(str(@num1*@num2))+' '
set @num2=@num2+1
end
set @num1=@num1+1
end
运行出来后结果是
----------1----------
1*1=1
----------2----------
1*2=2
2*2=4
----------3----------
1*3=3
2*3=6
3*3=9
----------4----------
1*4=4
2*4=8
3*4=12
4*4=16
----------5----------
1*5=5
2*5=10
3*5=15
4*5=20
5*5=25
----------6----------
1*6=6
2*6=12
3*6=18
4*6=24
5*6=30
6*6=36
----------7----------
1*7=7
2*7=14
3*7=21
4*7=28
5*7=35
6*7=42
7*7=49
----------8----------
1*8=8
2*8=16
3*8=24
4*8=32
5*8=40
6*8=48
7*8=56
8*8=64
----------9----------
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 @num1=1
while(@num1<=9)
begin
set @num2=1
print '----------'+ltrim(str(@num1))+'----------'
while(@num2<=@num1)
begin
print ltrim(str(@num2))+'*'+ltrim(str(@num1))+'='+ltrim(str(@num1*@num2))+' '
set @num2=@num2+1
end
set @num1=@num1+1
end
运行出来后结果是
----------1----------
1*1=1
----------2----------
1*2=2
2*2=4
----------3----------
1*3=3
2*3=6
3*3=9
----------4----------
1*4=4
2*4=8
3*4=12
4*4=16
----------5----------
1*5=5
2*5=10
3*5=15
4*5=20
5*5=25
----------6----------
1*6=6
2*6=12
3*6=18
4*6=24
5*6=30
6*6=36
----------7----------
1*7=7
2*7=14
3*7=21
4*7=28
5*7=35
6*7=42
7*7=49
----------8----------
1*8=8
2*8=16
3*8=24
4*8=32
5*8=40
6*8=48
7*8=56
8*8=64
----------9----------
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
不是阶梯形的,怎么改?
max(case when a < 1 then '' else '1*'+cast(a as varchar)+'='+cast(a*1 as varchar) end) as [1],
max(case when a < 2 then '' else '2*'+cast(a as varchar)+'='+cast(a*2 as varchar) end) as [2],
max(case when a < 3 then '' else '3*'+cast(a as varchar)+'='+cast(a*3 as varchar) end) as [3],
max(case when a < 4 then '' else '4*'+cast(a as varchar)+'='+cast(a*4 as varchar) end) as [4],
max(case when a < 5 then '' else '5*'+cast(a as varchar)+'='+cast(a*5 as varchar) end) as [5],
max(case when a < 6 then '' else '6*'+cast(a as varchar)+'='+cast(a*6 as varchar) end) as [6],
max(case when a < 7 then '' else '7*'+cast(a as varchar)+'='+cast(a*7 as varchar) end) as [7],
max(case when a < 8 then '' else '8*'+cast(a as varchar)+'='+cast(a*8 as varchar) end) as [8],
max(case when a < 9 then '' else '9*'+cast(a as varchar)+'='+cast(a*9 as varchar) end) as [9]
from (
select 1 as a
union all
select 2
union all
select 3
union all
select 4
union all
select 5
union all
select 6
union all
select 7
union all
select 8
union all
select 9
) as t1
group by a
/*
1 2 3 4 5 6 7 8 9
--------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- --------------------------------------------------------------- ---------------------------------------------------------------
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(9 個資料列受到影響)*/
declare @s nvarchar(500)
set @num1=1
while(@num1<=9)
begin
set @num2=1
select @s=''
while(@num2<=@num1)
begin
select @s=@s+ltrim(str(@num2))+'*'+ltrim(str(@num1))+'='+ltrim(str(@num1*@num2))+' '
set @num2=@num2+1
end
print @s
set @num1=@num1+1
end1*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
declare @s nvarchar(500)
set @num1=1
while(@num1<=9)
begin
print(ltrim(@num1)+'------------------------------------------------------------------')
set @num2=1
select @s=''
while(@num2<=@num1)
begin
select @s=@s+ltrim(str(@num2))+'*'+ltrim(str(@num1))+'='+ltrim(str(@num1*@num2))+' '
set @num2=@num2+1
end
print @s
set @num1=@num1+1
end1------------------------------------------------------------------
1*1=1
2------------------------------------------------------------------
1*2=2 2*2=4
3------------------------------------------------------------------
1*3=3 2*3=6 3*3=9
4------------------------------------------------------------------
1*4=4 2*4=8 3*4=12 4*4=16
5------------------------------------------------------------------
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
6------------------------------------------------------------------
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
7------------------------------------------------------------------
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
8------------------------------------------------------------------
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
9------------------------------------------------------------------
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
case when a < 1 then '' else '1*'+cast(a as varchar)+'='+cast(a*1 as varchar) end as [1],
case when a < 2 then '' else '2*'+cast(a as varchar)+'='+cast(a*2 as varchar) end as [2],
case when a < 3 then '' else '3*'+cast(a as varchar)+'='+cast(a*3 as varchar) end as [3],
case when a < 4 then '' else '4*'+cast(a as varchar)+'='+cast(a*4 as varchar) end as [4],
case when a < 5 then '' else '5*'+cast(a as varchar)+'='+cast(a*5 as varchar) end as [5],
case when a < 6 then '' else '6*'+cast(a as varchar)+'='+cast(a*6 as varchar) end as [6],
case when a < 7 then '' else '7*'+cast(a as varchar)+'='+cast(a*7 as varchar) end as [7],
case when a < 8 then '' else '8*'+cast(a as varchar)+'='+cast(a*8 as varchar) end as [8],
case when a < 9 then '' else '9*'+cast(a as varchar)+'='+cast(a*9 as varchar) end as [9]
from
(select 1 as a union select 2 union select 3 union select 4 union select 5 union select 6
union select 7 union select 8 union select 9 ) as tb
set @a=1
set @b=1;
set @c=''
while @a<=9
begin
set @b=1
while @b<@a
begin
set @c=@c+Cast(@b as varchar(10))+'*'+cast(@a as varchar(10))+'='+cast(@b*@a as varchar(10))
if @b*@a>=10
set @c=@c+' '
else
set @c=@c+' '
set @b=@b+1
end
print @c
set @c =''
set @a=@a+1
end
declare @i int, @j int, @str varchar(8000)
set @str = ''
set @i = 1
while(@i <= 9)
begin
set @j = 1
while(@j<=@i)
begin
set @str = @str + cast(@i as varchar) + ' * ' + cast(@j as varchar) + ' = ' + cast(@i*@j as varchar) + ' '
set @j = @j +1
end
set @str = @str + char(10)
set @i = @i + 1
endprint @str--结果
/*
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
*/
--输出对齐版
declare @i int, @j int, @str varchar(8000)
set @str = ''
set @i = 1
while(@i <= 9)
begin
set @j = 1
while(@j<=@i)
begin
set @str = @str + cast(@i as char(1)) + ' * ' + cast(@j as char(1)) + ' = ' + cast(@i*@j as char(2)) + ' '
set @j = @j +1
end
set @str = @str + char(10)
set @i = @i + 1
endprint @str--结果
/*
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
*/
--对齐版 + 标题版
declare @i int, @j int, @str varchar(8000)
set @str = ''
set @i = 1
while(@i <= 9)
begin
set @str = @str + '-----------------------------------------------------' + cast(@i as varchar) + '-----------------------------------------------------' + char(10)
set @j = 1
while(@j<=@i)
begin
set @str = @str + cast(@i as char(1)) + ' * ' + cast(@j as char(1)) + ' = ' + cast(@i*@j as char(2)) + ' '
set @j = @j +1
end
set @str = @str + char(10)
set @i = @i + 1
endprint @str--结果
/*
-----------------------------------------------------1-----------------------------------------------------
1 * 1 = 1
-----------------------------------------------------2-----------------------------------------------------
2 * 1 = 2 2 * 2 = 4
-----------------------------------------------------3-----------------------------------------------------
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
-----------------------------------------------------4-----------------------------------------------------
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
-----------------------------------------------------5-----------------------------------------------------
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
-----------------------------------------------------6-----------------------------------------------------
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
-----------------------------------------------------7-----------------------------------------------------
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
-----------------------------------------------------8-----------------------------------------------------
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
-----------------------------------------------------9-----------------------------------------------------
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
*/
'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 '
捣乱的,可以忽略我