declare @a smallint, @b smallint, @str varchar(1000) set @a=1 while @a<=9 begin set @b=1 set @str='' while @b<=@a begin select @str=@str+convert(varchar(1),@b)+'*'+convert(varchar(1),@a)+'='+convert(varchar(2),@a*@b)+space(2) set @b=@b+1 end print @str set @a=@a+1 end
declare @x int declare @y int declare @c varchar(6000) set @x = 1 while(@x<=9) begin select @y=1,@c='' while(@y<=@x) begin select @c=@c+cast(@y as varchar)+'x'+cast(@x as varchar)+'=' +(case when len(ltrim(@x*@y))>1 then '' else ' ' end)+ltrim(@x*@y)+' ' select @y=@y+1 end print @c+char(10) select @x=@x+1 end
--这样会不会好看一些 select max(case when a>0 then '1*'+a+'='+ltrim(a*1) end) [1], max(case when a>1 then '2*'+a+'='+ltrim(a*2) end) [2], max(case when a>2 then '3*'+a+'='+ltrim(a*3) end) [3], max(case when a>3 then '4*'+a+'='+ltrim(a*4) end) [4], max(case when a>4 then '5*'+a+'='+ltrim(a*5) end) [5], max(case when a>5 then '6*'+a+'='+ltrim(a*6) end) [6], max(case when a>6 then '7*'+a+'='+ltrim(a*7) end) [7], max(case when a>7 then '8*'+a+'='+ltrim(a*8) end) [8], max(case when a>8 then '9*'+a+'='+ltrim(a*9) end) [9] from ( select ltrim(number) a from master..spt_values where type='p' and number between 1 and 9 ) t group by a