【问题标题】:SQL to generate a serial number from 1 to 9 repeatedly in oracleSQL在oracle中重复生成1到9的序列号
【发布时间】: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;
  • 非常感谢..

标签: sql oracle oracle12c


【解决方案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 以便按照某种排序标准对您的行进行编号。无论如何,数学保持不变。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多