这似乎是一个奇怪的序列要求,但如果你真的想要那么你可以这样做:

create sequence weird_seq

start with 2

increment by 4

maxvalue 2

minvalue -2

cycle

nocache;

select weird_seq.nextval from dual

connect by level <= 10;

NEXTVAL

----------

2

-2

2

-2

2

-2

2

-2

2

-2

增量4是从步数-2到2.最大值2是下一个调用周期循环到minval -2.它需要以/ -2开头. nocache是​​不幸的但是必要的,否则你会得到“ORA-04013:CACHE的数字必须小于一个周期”.

如果您只是将这些数字用作查询的一部分,那么您可以使用分层查询来代替:

select 2 * (2 * mod(level, 2) - 1)

from dual

connect by level <= 10;

2*(2*MOD(LEVEL,2)-1)

--------------------

2

-2

2

-2

2

-2

2

-2

2

-2

但是然后多次运行总是从2开始,这可能不是你想要的. (取决于它将如何使用……)

您可能还可以使用分析查询从现有数据中动态生成数字,但同样,它取决于您将使用此数据.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐