首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

SQL 實現九九乘法表四種變體:WHILE 迴圈與條件控制輸出左下/右下/右上/左上三角

     編輯:MySQL 綜合教學

利用 T-SQL/MySQL 過程式語法(變量、WHILE、IF、字串拼接)生成九九乘法表四種視覺變體,展示流程控制與字串構建技巧。

環境

語法兼容 SQL Server / MySQL(需 DELIMITER 調整),變量聲明用 DECLARE/SET。

1. 左下三角(標準)

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
...

2. 右下三角(右對齊)

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

3. 右上三角

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

4. 左上三角

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

MySQL 8.0+ 遞歸 CTE 純查詢寫法(無變量/迴圈)

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 判斷是否在三角區內。
  • MySQL 無 PRINT,改用 SELECT @S AS line 或寫入臨時表再查詢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved