Sybase ASE 按级别等效连接

Mou*_*diz 5 sql sybase sap-ase

我想生成从 0 到 9000000 的数字。在 Oracle 中,我可以使用以下代码。如何在 Sybase ASE 中执行此操作?

这是在 Oracle 中:

SELECT level  Num
FROM DUAL
CONNECT BY LEVEL  <= 9000000
ORDER BY Num;
Run Code Online (Sandbox Code Playgroud)

如何在 Sybase ASE 中做到这一点?

我无法创建表并添加身份,因为我需要从 1 到 9000000 的数字,因此表会很复杂。是否有查询可以执行此操作?

Tho*_*s G 4

在 Sybase IQ 中,有一个可用于生成数字的系统过程: sa_rowgenerator

\n\n

你本可以这样做:

\n\n
 SELECT row_num FROM sa_rowgenerator( 1, 9000000);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我根本不了解 Sybase ASE,所以我用 google 搜索并发现此过程在 ASE 中不可用,但存在替代方案:

\n\n
\n

ASE 不支持 SQL Anywhere 系统过程 sa_rowgenerator、sa_split_list 和\n sa_conn_info。ASE 主数据库包含表 spt_values,可用于以类似于 sa_rowgenerator 过程或 SQL Anywhere\xe2\x80\x99s dbo.row_generator 系统表的方式选择整数值。

\n
\n\n

来源:将 SQL Anywhere 数据库应用程序迁移到 ASE

\n\n

这个spt_values包含整数的表令人难以置信地没有记录。这就像一张幽灵桌。

\n\n

我建议您尝试一下:

\n\n
select number \nFROM master.dbo.spt_values\nWHERE number BETWEEN 0 AND 9000000\n
Run Code Online (Sandbox Code Playgroud)\n\n

但如果您的数据库系统爆炸,我不承担任何责任;-)

\n