首页 > 数据库 > mysql教程 > 如何在 SQL 中生成指定参数之间的数字范围?

如何在 SQL 中生成指定参数之间的数字范围?

Barbara Streisand
发布: 2025-01-20 03:21:10
原创
223 人浏览过

How to Generate a Range of Numbers in SQL Between Specified Parameters?

在 SQL 中生成序列数列

本文演示了如何在 SQL 中生成指定范围内的数字序列。 想象一下需要一个从 1000 到 1050 的数字列表,每个数字位于单独的行上。

方法 1:VALUES 和交叉连接

一种技术使用 VALUES 子句创建临时数字集并通过交叉连接将它们组合起来。

<code class="language-sql">WITH x AS (SELECT n FROM (VALUES (0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) v(n))
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL))
FROM x ones, x tens, x hundreds, x thousands
ORDER BY 1;</code>
登录后复制

这会生成数字 0-9999。 调整 VALUES 子句将输出限制在所需的范围内。

方法二:个别数字表

更明确的方法是使用单独的表来表示个位、十位、百位和千位。

<code class="language-sql">SELECT ones.n + 10*tens.n + 100*hundreds.n + 1000*thousands.n
FROM (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) ones(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) tens(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) hundreds(n),
     (VALUES(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) thousands(n)
ORDER BY 1;</code>
登录后复制

这提供了对数字生成过程的精确控制,并且可以轻松扩展到更大的范围。这两种方法都为在 SQL 中创建数值序列提供了灵活的解决方案,可适应不同的需求。

以上是如何在 SQL 中生成指定参数之间的数字范围?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板