やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3学習 拡張関数(generate_series)

 連番ジェネレータ。

成果物

拡張関数のダウンロード&コンパイル

ダウンロード

 このファイルをseries.cファイルとしてローカルに作成する。

コンパイル

gcc -g -fPIC -shared series.c -o series.so

 拡張関数ライブラリ.soファイルが生成される。

使ってみる

 ターミナルで以下コマンド実行。

sqlite3

 対話モードで以下コマンド実行。

.load ./series.so

 拡張関数generate_seriesを使う。

SELECT value FROM generate_series(5,100,5);
5
10
15
20
25
30
35
40
45
50
55
60
65
70
75
80
85
90
95
100

連番(LIMITで上限指定)

SELECT * FROM generate_series LIMIT 5;
0
1
2
3
4

ランダム値を20個

SELECT random() FROM generate_series LIMIT 20;
4781183015573164509
-1186665590103292783
-5819188382597786527
4671825323400391928
-5796790998916529304
-5458092066215148353
9056443685724554304
-1499490289527021359
-7907301309464492982
8546936399769899891
8253122258267743397
1156079778985800018
388238426045630750
-5797378748399052240
-3491896033969870656
-6200741004921948958
-3008396113686618766
3404367843058498320
8409257409035081535
-1282497019177353122

0〜100のランダム値を取得する

SELECT (abs(random()) % 100)  FROM generate_series LIMIT 20;
68
74
9
58
4

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで