You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在T-SQL中格式化乘法表结果为多列展示?

修改T-SQL存储过程实现乘法表并行排版

现有存储过程dbo.math_tables可以从指定数字开始生成2个乘法表,但当前执行后是按乘法表依次输出。需要修改代码,让两个乘法表的对应行在同一行展示,实现并行排版,提升结果可读性。

原代码

CREATE OR ALTER PROCEDURE dbo.math_tables (@x INT = 1)
AS
BEGIN
    DECLARE @y INT = 1
    DECLARE @ctr INT = 0

    BEGIN
        WHILE @ctr <= 2
        BEGIN
            WHILE @y <= 10
            BEGIN
                 PRINT ltrim(str(@x)) + ' x ' + ltrim(str(@y)) + ' = ' + ltrim(str(@x * @y))

                SET @y += 1
            END

            SET @x += 1
            SET @y = 1
            SET @ctr += 1

            PRINT '---------------------------'
        END
    END
END
GO

EXECUTE dbo.math_tables 5 /* Starting table */
GO

当前输出

5 x 1 = 5
5 x 2 = 10
5 x 3 = 15
5 x 4 = 20
5 x 5 = 25
5 x 6 = 30
5 x 7 = 35
5 x 8 = 40
5 x 9 = 45
5 x 10 = 50
---------------------------
6 x 1 = 6
6 x 2 = 12
6 x 3 = 18
6 x 4 = 24
6 x 5 = 30
6 x 6 = 36
6 x 7 = 42
6 x 8 = 48
6 x 9 = 54
6 x 10 = 60
---------------------------

期望输出

5 x 1 = 5      6 x 1 = 6
5 x 2 = 10     6 x 2 = 12
5 x 3 = 15     6 x 3 = 18
5 x 4 = 20     6 x 4 = 24
5 x 5 = 25     6 x 5 = 30
5 x 6 = 30     6 x 6 = 36
5 x 7 = 35     6 x 7 = 42
5 x 8 = 40     6 x 8 = 48
5 x 9 = 45     6 x 9 = 54
5 x 10 = 50    6 x 10 = 60

修改后的代码

CREATE OR ALTER PROCEDURE dbo.math_tables (@x INT = 1)
AS
BEGIN
    DECLARE @y INT = 1
    -- 定义第二个乘法表的起始数字
    DECLARE @x2 INT = @x + 1

    -- 循环1到10,每次生成两个乘法表的对应行
    WHILE @y <= 10
    BEGIN
        -- 使用STR函数指定长度,保证每行内容对齐
        PRINT STR(@x, 2) + ' x ' + STR(@y, 2) + ' = ' + STR(@x * @y, 3) 
              + '    ' 
              + STR(@x2, 2) + ' x ' + STR(@y, 2) + ' = ' + STR(@x2 * @y, 3)
        
        SET @y += 1
    END
END
GO

EXECUTE dbo.math_tables 5 /* Starting table */
GO

代码说明

  • 去掉原有的嵌套循环,改为单循环遍历1到10的乘数@y
  • 直接计算第二个乘法表的起始数字@x2 = @x + 1
  • 使用STR(数值, 长度)函数格式化每个部分,让表达式占固定宽度,确保并行排版时对齐整齐
  • 每次循环同时拼接两个乘法表的对应行,用空格分隔后打印

内容的提问来源于stack exchange,提问作者Nikhil Govula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 17:20:26