¿Cómo generar una list de numbers en SQL ya que era una list de comprensión?

En mi caso, usando sql en cualquier lugar (sybase).

Algo similar a Haskell. [1..100]

No sé cómo generar una list simple aleatoria de 1 hasta 100.

Solo podría hacerlo haciendo:

select 1 union select 2 union select 3 

Google no proporcionó ninguna muestra, sospecho que esta característica no existe.

SQL Anywhere contiene un procedimiento almacenado sa_rowgenerator, que se puede usar para este fin. Por ejemplo:

 select row_num from sa_rowgenerator( 1, 100 ) 

devuelve un set de resultados de 100 filas de 1 a 100 inclusive. Un enlace a la documentation (para la versión 12.0.1) está aquí .

Descargo de responsabilidad: trabajo para SAP / Sybase en la ingeniería SQL Anywhere.

Encuentro que la manera más fácil para una list corta es algo como:

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

La tabla de columnas generalmente tiene al less 100 filas. Otras tablas también pueden ser usadas.

Para numbers grandes, algo como lo siguiente:

 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 ) . . . 
 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 /