4

就我而言,在任何地方使用 sql (sybase)。

类似于haskell的东西。[1..100]。

我不知道如何生成 1 到 100 的随机简单列表。

我只能这样做:

select 1
union 
select 2
union
select 3

谷歌没有提供任何样本,我怀疑这个功能不存在。

4

3 回答 3

3

SQL Anywhere 包含一个可用于此目的的 sa_rowgenerator 存储过程。例如:

select row_num from sa_rowgenerator( 1, 100 )

返回从 1 到 100(包括 1 到 100)的 100 行的结果集。文档链接(适用于 12.0.1 版)在此处

免责声明:我在 SAP/Sybase 的 SQL Anywhere 工程部门工作。

于 2013-01-15T17:49:04.337 回答
3

我发现简短列表的最简单方法是:

select t.*
from (select row_number() over (order by (select NULL)) as num
      from Information_Schema.columns
     ) t
where num <= 100

列表通常至少有 100 行。也可以使用其他表。

对于大数,如下所示:

with digits as (
      select 0 as dig union all select 1 union all select 2 union all select 3 union all select 4 union all
      select 5 union all select 6 union all select 7 union all select 8 union all select 9
),
     numbers as
      select d1.dig*10+d2.dig
      from digits d1 cross join
           digits d2
)
 . . .
于 2013-01-15T14:08:08.573 回答
1
Oracle queries - use any number to start/end:

 SELECT 99 + ROWNUM
   FROM dual       
 CONNECT BY ROWNUM <= 100 + 1
/

SELECT 99 + LEVEL
  FROM dual       
CONNECT BY LEVEL <= 100 + 1
/
于 2013-01-15T14:58:50.160 回答