クエリの実行で使用できる関数
仮想テーブルのクエリ設定で、SQLite3が提供する関数を利用できます。
クエリ内で使用できる関数は「表3.2 関数一覧」を参照してください。
表3.2 関数一覧
【Aggregate Function(集合関数)】
関数名 |
用途 |
備考 |
---|---|---|
avg(X) |
指定されているカラムの平均を返します。 |
|
count(*) |
テーブルの行数を返します。 |
|
count(X) |
指定したカラムのNULLでない行数を返します。 |
|
max(X) |
指定したカラムの最大値を返します。 |
数字文字以外は0として扱います。 |
min(X) |
指定したカラムの最小値を返します。 |
数字文字以外は0として扱います。 |
sum(X) |
指定したカラムの合計値を返します。 |
数字文字以外は0として扱います。 |
total(X) |
指定したカラムの合計値を浮動小数点数で返します。 |
|
group_concat(X) group_concat(X,Y) |
指定したカラム(X)の値を連結して返します。 Yを指定すると、Xの値の区切り文字としてYが使用されます。 Yを省略すると、区切り文字としてカンマ(,)が使用されます。 |
|
【Date And Time Function(日付、時刻関数)】
関数名 |
用途 |
備考 |
---|---|---|
date(X,Y,Z, ...) |
Xに指定された日付データをYYYY-MM-DD形式で返します。 Y、Zには指定した日付、時刻を加工するための指定ができます。 【日付、時刻の加算および減算】 NNN years NNN months NNN days NNN hours NNN minutes NNN.NNNN seconds ※NNN:+n、-nで加算、減算する日時を指定。 【最初の日、最後の日】 start of year start of month start of day 【指定した曜日の日】 weekday N ※N:曜日を表す数値を指定します。0が日曜、6が土曜になります。 【UNIXタイムスタンプの日】 unixepoch 【ローカルタイムゾーンでの表示】 localtime 【UTCタイムゾーンでの表示】 utc |
|
time(X,Y,Z, ...) |
Xに指定された時刻データをHH:MM:SS形式で返します。 Y、Zに関してはdate関数と同様。 |
|
datetime(X,Y,Z,...) |
Xに指定された日付および時刻データをYYYY-MM-DD HH:MM:SS形式で返します。 Y、Zに関してはdate関数と同様。 |
|
strftime(X,Y,Z,...) |
Yに指定された日付および時刻データをXに指定された形式で返します。 Y、Zに関してはdate関数と同様。 |
|
【Core Function(コア関数)】
関数名 |
用途 |
備考 |
---|---|---|
abs(x) |
数値の絶対値を返します。 |
|
coalesce(X,Y,...) |
指定した2つ以上のカラムで最初のNULL以外のカラムを返します。 |
|
glob(X,Y) |
YがXで指定したパターンにマッチすれば1を返します。しない場合は0を返します。 |
|
ifnull(X,Y) |
指定した2つのカラムで最初のNULL以外のカラムを返します。 |
|
hex(X) |
BLOB型の値を16進表示で返します。 |
|
like(X,Y) |
YがXで指定したパターンにマッチすれば1を返します。しない場合は0を返します。 |
大文字と小文字の区別はしません |
like(X,Y,Z) |
YがXで指定したパターンにZを除き、マッチすれば1を返します。しない場合は0を返します。 |
|
lower(X) |
引数に指定した文字列を小文字に変換した値を返します。 |
|
upper(X) |
引数に指定した文字列を大文字に変換した値を返します。 |
|
ltrim(X) |
文字列(X)の先頭から半角スペースを削除した値を返します。 |
|
ltrim(X,Y) |
文字列(X)の先頭から削除対象文字(Y)を削除した値を返します。 |
|
round(X,Y) |
数値(X)の小数点以下の桁数(Y)で四捨五入した結果を返します。例えば、Yに2を指定した場合は、小数点第3位を四捨五入します。 |
|
rtrim(X) |
文字列(X)の最後から半角スペースを削除した値を返します。 |
|
rtrim(X,Y) |
文字列(X)の最後から削除対象文字(Y)を削除した値を返します。 |
|
substr(X,Y,Z) |
文字列(X)から部分的に文字列を取得します。開始位置(Y)で指定した位置から文字数(Z)だけ取得します。 |
|
trim(X) |
文字列(X)の両側の半角スペースを削除した値を返します。 |
|
trim(X,Y) |
文字列(X)から指定の文字(Y)を削除した値を返します。 |
|
max(X,Y,...) |
指定された引数の最大値を返します。 |
|
min(X,Y,...) |
指定された引数の最小値を返します。 |
|
nullif(X,Y) |
XとYを比較し、同じ値の場合はNULLを返し、異なっていればXを返します。 |
|
quote(X) |
シングルクォーテーションで囲んだ値を返します。 |
|
random() |
乱数を発生させ、その値を返します。 |
|
replace(X,Y,Z) |
文字列(X)の指定した文字(Y)を指定文字(Z)に置換します。 |
|
こちらに記載のない関数については動作は保証しません。
演算子 |
使用方法 |
説明 |
---|---|---|
+ |
A+B |
AにBを加算 |
- |
A-B |
AからBを減算 |
* |
A*B |
AとBを乗算 |
/ |
A/B |
AをBで除算 |
% |
A%B |
AをBで除算した余り |
入力ファイル、マッチングファイル、変数などの参照型($INUMや$INAME)を関数内に利用し、さらにその値に特定文字列を結合し評価を行う場合「||(パイプ)」を使用し文字列結合を行ってください。
例)like(X,Y)関数にて%を使用したあいまい検索を行う場合
select [col1] from [vt] where like('%'||'ABC'||'%',[col1])