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 的数字,因此表会很复杂。是否有查询可以执行此操作?
在 Sybase IQ 中,有一个可用于生成数字的系统过程: sa_rowgenerator
\n\n你本可以这样做:
\n\n SELECT row_num FROM sa_rowgenerator( 1, 9000000);\nRun Code Online (Sandbox Code Playgroud)\n\n我根本不了解 Sybase ASE,所以我用 google 搜索并发现此过程在 ASE 中不可用,但存在替代方案:
\n\n\n\n\nASE 不支持 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
来源:将 SQL Anywhere 数据库应用程序迁移到 ASE
\n\n这个spt_values包含整数的表令人难以置信地没有记录。这就像一张幽灵桌。
我建议您尝试一下:
\n\nselect number \nFROM master.dbo.spt_values\nWHERE number BETWEEN 0 AND 9000000\nRun Code Online (Sandbox Code Playgroud)\n\n但如果您的数据库系统爆炸,我不承担任何责任;-)
\n