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  
不是阶梯形的,怎么改?

解决方案 »

  1.   

    select
    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 個資料列受到影響)*/
      

  2.   

    declare @num1 int,@num2 int
    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  
      

  3.   

    declare @num1 int,@num2 int
    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  
      

  4.   

    select
      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
     
      

  5.   

    declare @a int,@b int,@c varchar(1000)
    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
      

  6.   


    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  
    */
      

  7.   


    --输出对齐版
    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  
    */
      

  8.   


    --对齐版 + 标题版
    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  
    */
      

  9.   

    print 
    '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 '
    捣乱的,可以忽略我