やってみる

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

SQLite3コア関数 substr

 抽出。指定範囲にある文字列を。

成果物

構文

select substr('対象文字列', 開始位置);
select substr('対象文字列', 開始位置, 長さ);
文字列
引数 備考
開始位置 1〜/〜-1 01と同じく先頭を意味するが、長さ+1せねばならなくなる。負数なら後ろからの位置になる。
長さ length() 開始位置=0なら長さ+1せねばならない。負数なら空文字を返す

 開始位置0が謎。位置0は使わないほうが良さそう。

select substr('0123456789', 7);
6789
select substr('0123456789', 5, 7);
456789

select substr('0123456789', -2);
89
select substr('0123456789', -1);
9
select substr('0123456789', 0);
0123456789
select substr('0123456789', 1);
0123456789
select substr('0123456789', 2);
123456789

select substr('0123456789', 0, 10);
012345678
select substr('0123456789', 0, 11);
0123456789
select substr('0123456789', 0, 12);
0123456789
select substr('0123456789', 1, 10);
0123456789
select substr('0123456789', 1, 11);
0123456789
select substr('0123456789', 1, 12);
0123456789

select substr('0123456789', 0, 0);

select substr('0123456789', 0, 1);

select substr('0123456789', 0, 2);
0
select substr('0123456789', 1, 0);

select substr('0123456789', 1, 1);
0
select substr('0123456789', 0, -1);

select substr('0123456789', 0, -2);


select substr('0123456789', -5, 2);
56

対象環境

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

前回まで