今天是周日,给大家看点轻松的——用 SQL 打印九九乘法表。
九九乘法表的 SQL 我曾发布到其它内容平台,现在把 SQL 拷过来,稍微加一些说明。
下图是我从网上找到一个九九乘法表,本文要实现的也是这样的效果。
图1 九九乘法表
打印九九乘法表需要经过下面这几个步骤:
构建一张 1 到 9 的数字表;
生成所有乘法算式的组合;
做行转列处理,格式化输出。
1 构建 1-9 的数字表
如果我们有数字辅助表(有专门的字段存储从0/1起始的自然数列),那可以直接使用该表。如果没有数字辅助表,找到任意一张存储大于 9 条记录数的表,借助于窗口函数或者用户变量生成 1-9 的自然数列。
窗口函数生成 1-9 的自然数列:
SELECT
ROW_NUMBER() OVER() AS num
FROM
emp
LIMIT 9
使用用户变量生成 1-9 的自然数列。
SELECT
@rn := @rn + 1 AS num
FROM
emp,(SELECT @rn:=0) a
LIMIT 9
由于我的 emp 表的记录数大于 9,所以用上面两种方式构建自然数列没有问题。