トップページに戻る
次のmodel句のサンプルへ
前のmodel句のサンプルへ
model句06 all_objectsやall_catalogやdictの代用
SQLパズル
1から5までの自然数を出力する。
出力結果
No
--
1
2
3
4
5
SQL
select soeji
from dual
model
dimension by (1 as soeji)
measures(0 as dummy)
rules iterate (5) (dummy[iteration_number+1] = 0);
解説
iteration_numberは、0から開始されるのです。
プログラム言語のfor文のループ変数でよく使われるiは、
iterationの頭文字が由来らしい・・・
マニュアル(iteration_number)
マニュアル(iteration_number)(英語)
10-172 dual表からの連番の作成
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
rules iterate を使わずに、for文で代用することもできます。
select soeji
from dual
model
dimension by(1 as soeji)
measures(0 as dummy)
rules(
dummy[for soeji from 1 to 5 increment 1]= 0);
soeji
-----
1
2
3
4
5
-- 日付型バージョン1
select m
from dual
model
dimension by(0 as soeji)
measures(date '2009-03-01' as m)
rules(
m[for soeji from 0 to 5 increment 1]=m[0]+cv(soeji));
M
--------
09-03-01
09-03-02
09-03-03
09-03-04
09-03-05
09-03-06
-- 日付型バージョン2
select soeji
from dual
model
dimension by(date '2009-03-01' as soeji)
measures(0 as dummy)
rules(
dummy[for soeji from '2009-03-01' to '2009-03-05' INCREMENT INTERVAL '1' day]=0);
-- 日付型バージョン3
select soeji
from dual
model
dimension by(date '2009-03-01' as soeji)
measures(0 as dummy)
rules(
dummy[for soeji from '2009-03-01' to '2009-03-05' INCREMENT 1]=0);
10-309 model句のforループでのinterVal型指定