输出乘法表

1,

declare @str varchar(max)
declare @num1 int ,@num2 int
select @num1=1,@num2=1
while(@num1<10)
begin
    set @num2=1
    while(@num2<=@num1)
    begin
        set @str = isnull(@str,'')+ltrim(@num1)+'*'+ltrim(@num2)+'='+right(100+@num1*@num2,2)+'  '
        set @num2=@num2+1
    end
    set @num1=@num1+1
    set @str = isnull(replace(@str,'=0','= '),'') + char(13)
end

print @str

2,

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  

2.5,

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  ( VALUES(1),(2),(3),(4),(5),(6),(7),(8),(9)) AS t1(a)
原文地址:https://www.cnblogs.com/yyjj/p/3944882.html