利用 T-SQL/MySQL 過程式語法(變量、WHILE、IF、字串拼接)生成九九乘法表四種視覺變體,展示流程控制與字串構建技巧。
語法兼容 SQL Server / MySQL(需 DELIMITER 調整),變量聲明用 DECLARE/SET。
DECLARE @I INT, @J INT, @S VARCHAR(100);
SET @I = 1;
WHILE @I < 10
BEGIN
SET @J = 1; SET @S = '';
WHILE @J <= @I
BEGIN
SET @S = @S + CAST(@J AS CHAR) + '*' + CAST(@I AS CHAR) + '=' + CAST(@I*@J AS CHAR);
SET @J = @J + 1;
END
PRINT @S; -- MySQL 用 SELECT @S;
SET @I = @I + 1;
END
輸出:
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 ...
SET @I = 1;
WHILE @I < 10
BEGIN
SET @J = 9; SET @S = '';
WHILE @J > 0
BEGIN
IF @J > @I
SET @S = @S + ' '; -- 7 空格佔位
ELSE
SET @S = @S + CAST(@I AS CHAR) + '*' + CAST(@J AS CHAR) + '=' + CAST(@I*@J AS CHAR);
SET @J = @J - 1;
END
PRINT @S; SET @I = @I + 1;
END
SET @I = 1;
WHILE @I < 10
BEGIN
SET @J = 1; SET @S = '';
WHILE @J < 10
BEGIN
IF @J < @I
SET @S = @S + ' ';
ELSE
SET @S = @S + CAST(@I AS CHAR) + '*' + CAST(@J AS CHAR) + '=' + CAST(@I*@J AS CHAR);
SET @J = @J + 1;
END
PRINT @S; SET @I = @I + 1;
END
SET @I = 1;
WHILE @I < 10
BEGIN
SET @J = @I; SET @S = '';
WHILE @J < 10
BEGIN
SET @S = @S + CAST(@I AS CHAR) + '*' + CAST(@J AS CHAR) + '=' + CAST(@I*@J AS CHAR);
SET @J = @J + 1;
END
PRINT @S; SET @I = @I + 1;
END
WITH RECURSIVE nums(n) AS ( SELECT 1 UNION ALL SELECT n+1 FROM nums WHERE n < 9 ) SELECT GROUP_CONCAT(CONCAT(a, '*', b, '=', a*b) SEPARATOR ' ') AS line FROM ( SELECT n AS a, m AS b FROM nums CROSS JOIN nums m WHERE m <= n ) t GROUP BY a ORDER BY a;
@J > @I 判斷是否在三角區內。PRINT,改用 SELECT @S AS line 或寫入臨時表再查詢。