日期:2014-05-18 浏览次数:20605 次
--SQL写乖法口决
--能写出思路与SQL注释,便于大家理解才好,谢谢!
1 2 3 4 5 6 7 8 9
----- ------ ------ ------ ------ ------ ------ ------ ------
1 1X1=1
2 1X2=2 2X2=4
3 1X3=3 2X3=6 3X3=9
4 1X4=4 2X4=8 3X4=12 4X4=16
5 1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
6 1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
7 1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
8 1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
9 1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81
declare @i smallint,@j smallint,@str varchar(100) set @i=1 while @i<=9 begin select @j=1,@str='' while @j<=@i select @str=@str +cast(@j as char(1)) +'*'+cast(@i as char(1)) +'='+cast(@i*@j as char(2)) +space(2) ,@j=@j+1 print @str set @i=@i+1 end
------解决方案--------------------
select a.number ,
[1]=CASE WHEN 1>A.NUMBER THEN '' ELSE '1'+'X'+ltrim(a.number)+'='+ltrim(1*a.number) END,
[2]=CASE WHEN 2>A.NUMBER THEN '' ELSE '2'+'X'+ltrim(a.number)+'='+ltrim(2*a.number) END,
[3]=CASE WHEN 3>A.NUMBER THEN '' ELSE '3'+'X'+ltrim(a.number)+'='+ltrim(3*a.number) END,
[4]=CASE WHEN 4>A.NUMBER THEN '' ELSE '4'+'X'+ltrim(a.number)+'='+ltrim(4*a.number) END,
[5]=CASE WHEN 5>A.NUMBER THEN '' ELSE '5'+'X'+ltrim(a.number)+'='+ltrim(5*a.number) END,
[6]=CASE WHEN 6>A.NUMBER THEN '' ELSE '6'+'X'+ltrim(a.number)+'='+ltrim(6*a.number) END,
[7]=CASE WHEN 7>A.NUMBER THEN '' ELSE '7'+'X'+ltrim(a.number)+'='+ltrim(7*a.number) END,
[8]=CASE WHEN 8>A.NUMBER THEN '' ELSE '8'+'X'+ltrim(a.number)+'='+ltrim(8*a.number) END,
[9]=CASE WHEN 9>A.NUMBER THEN '' ELSE '9'+'X'+ltrim(a.number)+'='+ltrim(9*a.number) END
from master..spt_values a
where type='p' and number between 1 and 9
number 1 2 3 4 5 6 7 8 9
----------- --------------------------- --------------------------- --------------------------- --------------------------- --------------------------- --------------------------- --------------------------- --------------------------- ---------------------------
1 1X1=1
2 1X2=2 2X2=4
3 1X3=3 2X3=6 3X3=9
4 1X4=4 2X4=8 3X4=12 4X4=16
5 1X5=5 2X5=10 3X5=15 4X5=20 5X5=25