Oracle sql 每行生成连续的数字
Oracle sql generate consecutive numbers per row
我有一个带有 seqno 列的 table。我想基于此创建另一列 (grpseqno),其编号仅为 1 到 3,如下所示。如果这是由 Oracle sql 创建的,那就太好了。提前谢谢你。
seqno grpseqno
1 1
2 2
3 3
4 1
5 2
6 3
7 1
我似乎无法从 1 循环到 3
一个选项可能是这样的 case
表达式:
示例数据:
SQL> with test (seqno) as
2 (select 1 + level - 1 seqno
3 from dual
4 connect by level <= 7
5 )
查询从这里开始:
6 select seqno,
7 case when mod(seqno, 3) = 0 then 3
8 else mod(seqno, 3)
9 end grpseqno
10 from test
11 order by seqno;
SEQNO GRPSEQNO
---------- ----------
1 1
2 2
3 3
4 1
5 2
6 3
7 1
7 rows selected.
SQL>
我有一个带有 seqno 列的 table。我想基于此创建另一列 (grpseqno),其编号仅为 1 到 3,如下所示。如果这是由 Oracle sql 创建的,那就太好了。提前谢谢你。
seqno grpseqno
1 1
2 2
3 3
4 1
5 2
6 3
7 1
我似乎无法从 1 循环到 3
一个选项可能是这样的 case
表达式:
示例数据:
SQL> with test (seqno) as
2 (select 1 + level - 1 seqno
3 from dual
4 connect by level <= 7
5 )
查询从这里开始:
6 select seqno,
7 case when mod(seqno, 3) = 0 then 3
8 else mod(seqno, 3)
9 end grpseqno
10 from test
11 order by seqno;
SEQNO GRPSEQNO
---------- ----------
1 1
2 2
3 3
4 1
5 2
6 3
7 1
7 rows selected.
SQL>