4

私の場合、どこでもsqlを使用します(sybase)。

haskellに似たもの。[1..100]。

1から100までのランダムな単純なリストを生成する方法がわかりません。

私はそれをすることしかできませんでした:

select 1
union 
select 2
union
select 3

Googleはサンプルを提供していません。この機能は存在しないと思われます。

4

3 に答える 3

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 に答える
3

SQL Anywhereには、この目的で使用できるsa_rowgeneratorストアドプロシージャが含まれています。例えば:

select row_num from sa_rowgenerator( 1, 100 )

1から100までの100行の結果セットを返します。ドキュメント(バージョン12.0.1の場合)へのリンクはここにあります。

免責事項:私はSQLAnywhereエンジニアリングのSAP/Sybaseで働いています。

于 2013-01-15T17:49:04.337 に答える
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 に答える