SQL在oracle中重复生成1到9的序列号

Posted

技术标签:

【中文标题】SQL在oracle中重复生成1到9的序列号【英文标题】:SQL to generate a serial number from 1 to 9 repeatedly in oracle 【发布时间】:2020-05-11 15:20:37 【问题描述】:

我需要在 Oracle SQL Query 中生成序列号..

例子:

rownum (1,2..9,10,11..18,19,20..N)

my_srl_no (1,2..9,1,2..9,1,2..N)

【问题讨论】:

那么N的上限是多少? N -- 表的最后一条记录 select mod(rownum - 1, 9) + 1, t.* from table t; 非常感谢.. 【参考方案1】:

您正在寻找的是模函数MOD (https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/MOD.html#GUID-E12A3928-2C50-45B0-B8C3-82432C751B8C)。

如果你要处理的真的是rownum

mod(rownum - 1, 9) + 1

但通常您宁愿使用ROW_NUMBER 以便按照某种排序标准对您的行进行编号。无论如何,数学保持不变。

【讨论】:

以上是关于SQL在oracle中重复生成1到9的序列号的主要内容,如果未能解决你的问题,请参考以下文章

如何使用间隔 1 分钟在两个日期之间将时间序列数据生成到 Oracle PL/SQL 中的表中?

求助,oracle的序列号能不能一次获取到多个

Oracle序列生成器

Oracle PL/SQL 中自定义生成的 ID/序列? [复制]

Oracle SQL序列

shell脚本生成[4,9]范围内的随机整数,包含边界值4和9,并将随机数序列存放在一个数组中,脚本实现?